如何检查用户是否关闭了iOS应用程序?

10

如果应用程序在后台完成了约10分钟,它将处于暂停模式。 应用程序可以通过以下两种方式被杀死:

  1. iOS 可以杀死应用程序: 在这种情况下,将调用"applicationWillTerminate"。

  2. 用户可以使用多任务UI显式地终止应用程序。(双击Home按钮并按下-(红色)按钮)

在第二种情况下,我们如何知道用户已杀死该应用程序?

我查看了以下问题,但没有任何有用的结果: App killed by user


3
当你的后台任务完成后,需要设置一个NSUserDefaults标志。如果在下一次启动时没有这个标志,说明你的应用在达到后台任务结束之前被终止了。 - Matthias Bauch
1个回答

22

如果您的应用程序处于暂停状态,则无论是iOS还是用户杀死应用程序,applicationWillTerminate都不会被调用。

只有当您的应用程序在后台运行并被关闭(无论是由iOS还是用户)时,才会调用您的applicationWillTerminate。背景这个术语意味着它正在后台运行而不是处于挂起状态。

请仔细阅读此参考资料

applicationWillTerminate:-让您了解您的应用程序正在被终止。 如果您的应用程序已挂起,则不会调用此方法。

下表显示了各种状态 enter image description here

背景-应用程序在后台执行代码。大多数应用程序在进入挂起状态之前会短暂地进入此状态。但是,请求额外执行时间的应用程序可能会在此状态下保持一段时间。此外,直接启动到后台的应用程序会进入此状态,而不是非活动状态。有关在后台执行代码的信息,请参见后台执行。


参考链接现在无法使用。 - Display Name
刚刚编辑了——修复了链接。 - Display Name
我有一个问题,当我的应用程序在后台运行一段时间后,我尝试打开它时,会丢失登录令牌。只有当用户杀死应用程序时,令牌才能正确保存,因此我推断在applicationWillTerminate上有一些技巧,因为根据谁杀死应用程序会有所不同。我已经阅读了文档,但仍然不清楚。有什么想法吗?你推荐哪个委托方法?谢谢。 - Josh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接