是否有人对 applicationWillTerminate 在 iOS 5/6 中何时/在什么条件下被调用有任何见解?
我有一些逻辑我想在应用程序终止时执行(而不是移动到后台),例如,如果用户通过双击主页按钮导航到屏幕底部的应用程序栏,然后强制退出应用程序。
当我尝试在测试设备上执行此操作时,applicationWillTerminate 似乎没有被调用。这是有原因的吗?
我的 B 计划是将该逻辑与某个持久对象相关联,例如单例对象或在应用程序退出时自动销毁的静态对象。
有什么建议吗?
谢谢
最佳答案
您是否阅读了 applicationWillTerminate: 的文档? ,
它说,
对于不支持后台执行或链接到 iOS 3.x 或更早版本的应用程序,此方法总是在用户退出应用程序时调用。对于支持后台执行的应用程序,当用户退出应用程序时通常不会调用此方法,因为在这种情况下应用程序只是移至后台。 但是,在应用程序在后台运行(未挂起)并且系统出于某种原因需要终止它的情况下,可能会调用此方法。
那里提到了一个“也许”。可能这回答了你的问题。因此,当您退出应用程序时,没有必要调用它。可能您可能必须使用 UIApplicationExitsOnSuspend
来禁用多任务处理,然后它可能会在后台运行时被调用。但这又取决于您的应用程序要求。如果您不能禁用多任务处理,您可能会考虑在 applicationDidEnterBackground
方法中这样做。我不确定是否有任何其他委托(delegate)方法可以帮助识别强制退出。
关于objective-c - applicationWillTerminate 不会在强制退出 iOS 应用程序时被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13386505/