我刚刚获得 iPhone SDK 4,我试图停止开发我之前正在开发的应用程序。所以我同时实现了
-(void)applicationDidEnterBackground:(UIApplication *)application
和 - (void)applicationWillTerminate:(UIApplication *)application
当我在模拟器 4.0 中单击主页按钮时,它似乎工作正常。应用程序调用 -(void)applicationDidEnterBackground:(UIApplication *)application
并进入后台状态..
但是,然后我双击主页按钮以公开在后台运行的应用程序,并按住它以显示减号或退出。当我单击减号时,调试器显示
Program received signal: "SIGKILL"
此外,- (void)applicationWillTerminate:(UIApplication *)application
永远不会被调用。我是否缺少一些需要做的事情才能在 OS4 上运行?或者至少有人可以指出我调试 SIGKILL 的方法。谢谢。
最佳答案
-applicationWillTerminate:
仅当您的应用程序在被要求退出时处于运行状态时才会被调用。如果它已经处于挂起状态(正如您在此处所看到的那样),系统只需向应用程序发送一个终止信号。当用户按下红色减号按钮手动终止应用程序以及系统决定放弃应用程序以释放前台应用程序的内存时,就会发生这种情况。
如果您的应用程序在后台运行(例如,播放音乐或运行某些后台任务)并且用户通过按减号按钮手动终止应用程序,只有这样您才会真正获得 -applicationWillTerminate:
消息。因此,您必须保存所有状态/等。在从 -applicationDidEnterBackground:
返回之前。
关于运行 Simulator 4.0 的 iPhone 应用程序收到 Sigkill,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3098684/