有没有人对在iOS 5/6中调用applicationWillTerminate的时间/条件有任何见解?
我有一些逻辑我想在应用程序终止时执行(不移动到后台),例如,如果用户通过双击主页按钮导航到屏幕底部的应用程序栏,强制退出应用程序。
当我尝试在测试设备上执行此操作时,似乎没有调用applicationWillTerminate。有这个原因吗?
我的计划B是将该逻辑绑定到某个持久对象,如单例或静态,当应用程序退出时会自动销毁。
有什么建议吗?
感谢
答案 0 :(得分:8)
您是否阅读了applicationWillTerminate:,
的文档它说,
对于不支持后台执行或链接到iOS 3.x或更早版本的应用程序,当用户退出应用程序时,始终会调用此方法。对于支持后台执行的应用程序,当用户退出应用程序时通常不会调用此方法,因为在这种情况下应用程序只是移动到后台。 但是,在应用程序在后台运行(未暂停)且系统因某种原因需要终止它的情况下,可以将此方法称为。
那里有一个“可能”。可能会回答你的问题。因此,当您退出应用程序时,不必调用它。可能您可能必须使用UIApplicationExitsOnSuspend
来禁用多任务处理,然后在放入后台时可能会调用它。但这又取决于您的应用程序要求。如果您无法禁用多任务处理,您可能会考虑在applicationDidEnterBackground
方法中执行此操作。我不确定是否有任何其他委托方法有助于确定部队戒烟。