applicationWillTerminate:未被调用

时间:2011-09-14 13:22:51

标签: ios cocoa-touch uiapplicationdelegate application-lifecycle

我正在使用applicationWillTerminate:来保存最后一分钟的内容。但问题是它永远不会被调用。如果我在方法的顶部执行类似的操作:NSLog(@"Something");它不会被调用,也不会输出到控制台。

有谁知道为什么会这样?

4 个答案:

答案 0 :(得分:12)

来自Apple文档:

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

如果您的应用已启用后台,请使用:

- (void)applicationDidEnterBackground:(UIApplication *)application

答案 1 :(得分:5)

请改用applicationDidEnterBackground:。在多任务系统中按主页按钮时,应用程序不会终止。

答案 2 :(得分:1)

从核心应用程序设计和应用程序生命周期的iOS Application Programming Guide开始:

  

如果您的应用程序当前已被暂停,则不会调用applicationWillTerminate:方法。

如果要链接iOS 4.0,还应该在applicationDidEnterBackground:

中保存数据

答案 3 :(得分:1)

步骤1:命令+ shift + h(双击(tab))

第2步:移动app top side(kill)

第3步:applicationWillTerminate工作