iOS:被系统杀死的应用程序和被用户杀死的应用程序有什么区别?

时间:2018-12-06 16:08:49

标签: ios background state

我必须按there的要求定期(一天一次)执行我的应用程序的一些代码(从服务器上下载/上传数据)。

我了解到,当用户通过UI将其杀死时,无法从该应用执行任何代码,而在某些情况下,该应用可能已被系统终止。

在这两种情况下,我都不太了解达到什么状态。不运行?暂停了?如何在下图中区分这些情况?

enter image description here

1 个答案:

答案 0 :(得分:0)

如果用户关闭了您的应用程序但未从应用程序切换器中退出,则您将立即被后台执行,并允许您在短短的任意时间内执行代码,直到您的应用程序被挂起。系统会决定您何时进入此状态,并且您无权在iOS授予您的时间之外在后台保持生命。

在此时间到期之后,您将不再被允许执行代码,直到您被用户前台或在挂起状态下收到远程通知为止。如果您在暂停状态下收到推送,则可以在短时间内再次在后台执行代码,直到再次暂停。

如果用户从应用程序切换器中退出了您的应用程序,则您将立即切换到非运行状态,除非重新启动您的应用程序,否则它将无法执行代码。这也可以防止系统在重新启动时尝试保留和恢复应用程序的状态。

开发人员还需要注意,如果手机决定收回使您处于暂停状态的资源,则操作系统可能会在任何时候从后台终止该应用程序。