gpt4 book ai didi

iphone - applicationDidEnterBackground & applicationWillResignActive 没有被调用

转载 作者:行者123 更新时间:2023-12-01 15:55:05 25 4
gpt4 key购买 nike

我正在创建一个在主线程上执行一些任务的简单应用程序。我在 NSLog 中打印进程,因此我可以了解我的进程是否正在运行。

现在,当我在没有启动进程的情况下按下主页按钮时(进程将在我点击按钮时启动)应用程序进入后台并且我的两种方法 applicationDidEnterBackgroundapplicationWillResignActive 正在被调用。

但是当我第一次点击我的按钮并在主线程上启动进程时,如果我按下主页按钮,这两个方法都不会被调用。所以我的应用程序不知道该应用程序是否在后台输入。

即使在那之后,当我再次激活该应用程序时,它也会显示黑屏,只有状态栏。

  1. 为什么会这样?
  2. 为什么应用不进入后台?
  3. 为什么苹果的方法没有被调用?
  4. 有办法解决吗?

更新这是我的 appdelegate 类代码

- (void)applicationWillResignActive:(UIApplication *)application
{

}

- (void)applicationDidEnterBackground:(UIApplication *)application
{
}

- (void)applicationWillEnterForeground:(UIApplication *)application
{

}

- (void)applicationDidBecomeActive:(UIApplication *)application
{

}

所有方法都没有实现。

提前致谢。

最佳答案

I am creating a simple application which perform some task on main thread.

不要在主线程上执行长时间运行的操作。

委托(delegate)回调发生在主线程上。如果主线程很忙,那么回调将不会发生,直到您返回到“运行循环”。

将您的应用置于前台时,操作系统实际上会显示屏幕截图(如果可用),然后返回到启动图像 (Default.png)。屏幕截图是在 -applicationDidEnterBackground: 返回后截取的,它允许您自定义保存的内容(出于安全原因,您可能希望这样做,或者隐藏重新启动时可能无法显示的 UI 元素例如倒数计时器)。

黑屏可能是因为您的应用没有启动图像。如果您的应用进入后台的时间超过 10 秒(确实如此,因为主线程被阻塞),它就会被杀死。除了附加调试器并捕获 SIGKILL,所以除非您正在观看 Xcode,否则很容易错过。

关于iphone - applicationDidEnterBackground & applicationWillResignActive 没有被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10679594/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com