applicationWillTerminate:未被调用

The*_*AWK 5 cocoa-touch uiapplicationdelegate application-lifecycle ios

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

有谁知道为什么会这样?

zap*_*aph 12

来自Apple文档:

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

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

- (void)applicationDidEnterBackground:(UIApplication *)application

  • 一个重要的警告:至少在iOS 6上,`applicationWillTerminate:`被称为*没有*如果用户在应用程序仍处于前台时关闭设备,则应用程序已经背景. (2认同)

jrt*_*ton 5

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