如何知道应用是否被用户或iOS终止(10分钟背景后)

时间:2011-09-08 05:16:05

标签: iphone ios background termination

如何在重新启动应用>

时知道应用是由用户还是iOS终止

'用户'表示“通过双击主页按钮并按 - 按钮”。被用户杀死

'通过iOS'表示“应用程序变为后台运行状态,iOS终止应用程序10分钟后”

2 个答案:

答案 0 :(得分:13)

如果您的应用处于暂停状态,则applicationWillTerminate永远不会被调用,无论是谁杀死了应用iOS或用户。

您的applicationWillTerminate只会在您的应用处于后台时被调用并且被杀死(无论是iOS还是用户),术语背景意味着它在后台运行而不是处于暂停状态。

请阅读this reference

  

applicationWillTerminate: - 让您知道您的应用已被终止。如果您的应用被暂停,则不会调用此方法。

以下是各州的表格 enter image description here

  

背景 - 应用程序在后台并执行代码。大多数应用程序会暂停进入此状态。但是,请求额外执行时间的应用程序可能会在此状态下保留一段时间。此外,直接启动到后台的应用程序进入此状态而不是非活动状态。有关如何在后台执行代码的信息,请参阅后台执行。

答案 1 :(得分:9)

如果系统资源不足,iOS可能会终止您的应用 - 如果发生这种情况,您会看到applicationWillTerminate

过去,如果用户杀死了应用程序(任务管理器,通过按钮双击,然后点击红色' - '),它就是SIGKILL,并且不会调用applicationWillTerminate。 2013年中期的一份报告表明这已经发生了变化,现在调用了applicationWillTerminate

你可以使用NSUserDefaults在applicationWillTerminate中写一些状态位来注意这个函数被调用,大概是系统杀死而不是用户杀死。