【发布时间】:2013-01-02 21:52:30
【问题描述】:
所以我知道,如果您的应用支持后台执行,则不会调用 applicationWillTerminate:(除非存在一些内存问题),而是调用 applicationDidEnterBackground:。
在 appDelegate 的 applicationDidEnterBackground: 方法内部,它说
// If your application supports background execution,
//this method is called instead of applicationWillTerminate: when the user quits.
但是,当用户实际退出应用程序时,我需要将一些条目保存到字典中。我不想每次应用程序进入后台时都这样做。即使我的应用支持后台,有没有办法获得终止通知?
特别是如果应用程序被用户强制退出,有什么解决方法可以得到通知?
【问题讨论】:
-
用户永远不会退出支持后台执行的应用程序。该应用程序只需进入后台。该应用程序可能会在操作系统的后台被杀死,但这不是用户操作。为什么每次应用进入后台时都不想保存数据?这是你唯一的选择。
-
这是一个与外部蓝牙设备交互的应用程序。如果用户强制杀死该应用程序,我的印象是它不再在后台。不是这样吗?
-
这是真的。如果用户强制终止应用程序,那么您的应用程序不会收到任何有关它被终止的通知。
-
@maddy 编辑:纳米,你回答了我的问题。我强调的是强制退出问题
-
@rmaddy 我不确定这是否正确,至少现在不再正确。我使用后台位置,让它们在后台运行良好(在控制台中查看)...然后我使用应用程序切换器将其杀死...我仍然收到 applicationWillTerminate: 通知。
标签: iphone ios ipad ios6 appdelegate