applicationWillTerminate:不被调用

我正在使用applicationWillTerminate:保存一些最后一分钟的东西。 但问题是,它永远不会被调用。 如果我在方法的顶部做这样的事情: NSLog(@"Something"); 它不会被调用,不会被输出到控制台。

有谁知道这是为什么发生?

从Apple文档:

对于不支持后台执行的应用程序或与iOS 3.x或更低版本链接的应用程序,当用户退出应用程序时,总是调用此方法。 对于支持后台执行的应用程序,当用户退出应用程序时, 通常不会调用此方法 ,因为在这种情况下应用程序只是移动到后台。 但是,这种方法可能会在应用程序在后台运行(未挂起)并且由于某种原因需要终止系统的情况下调用。

如果您的应用程序已启用后台使用:

- (void)applicationDidEnterBackground:(UIApplication *)application

使用applicationDidEnterBackground:来代替。 在多任务系统中按主页button时,应用程序不会终止。

从核心应用程序devise和应用程序生命周期的iOS应用程序编程指南 :

如果您的应用程序当前被挂起,applicationWillTerminate:方法不会被调用。

如果您正在链接到iOS 4.0,则还应该将数据保存在applicationDidEnterBackground:

第1步:command + shift + h(双击(tab))

第2步:移动应用程序顶端(杀)

第3步:applicationWillTerminate工作

Interesting Posts