3

是否有人对在 iOS 5/6 中何时/在什么条件下调用 applicationWillTerminate 有任何见解?

我有一些逻辑我想在应用程序终止时执行(不移动到后台),例如,如果用户通过双击主页按钮导航到屏幕底部的应用程序栏并强制退出应用程序。

当我尝试在测试设备上执行此操作时,似乎没有调用 applicationWillTerminate。是否有一个原因?

我的计划 B 是将该逻辑与一些持久对象联系起来,例如单例或应用程序退出时自动销毁的静态对象。

有什么建议么?

谢谢

4

1 回答 1

8

您是否阅读过applicationWillTerminate:的文档,

它说,

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

那里提到了一个“也许”。可能这回答了你的问题。因此,当您退出应用程序时,没有必要调用它。可能您可能不得不使用UIApplicationExitsOnSuspend禁用多任务处理,然后在进入后台时可能会调用它。但这又取决于您的应用程序要求。如果您无法禁用多任务处理,您可能已经考虑在applicationDidEnterBackground方法中这样做。我不确定是否有任何其他委托方法可以帮助识别强制退出。

于 2012-11-14T20:13:17.003 回答