5

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

有谁知道为什么会这样?

4

4 回答 4

12

来自苹果文档:

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

如果您的应用启用了后台使用:

- (void)applicationDidEnterBackground:(UIApplication *)application

于 2011-09-14T13:28:36.063 回答
5

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

于 2011-09-14T13:28:52.017 回答
1

来自关于核心应用程序设计和应用程序生命周期的iO​​S 应用程序编程指南:

如果您的应用程序当前处于挂起状态,则不会调用 applicationWillTerminate: 方法。

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

于 2011-09-14T13:30:14.747 回答
1

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

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

第三步:申请WillTerminate Work

于 2016-02-19T09:33:33.280 回答