我必须按there的要求定期(一天一次)执行我的应用程序的一些代码(从服务器上下载/上传数据)。
我了解到,当用户通过UI将其杀死时,无法从该应用执行任何代码,而在某些情况下,该应用可能已被系统终止。
在这两种情况下,我都不太了解达到什么状态。不运行?暂停了?如何在下图中区分这些情况?
答案 0 :(得分:0)
如果用户关闭了您的应用程序但未从应用程序切换器中退出,则您将立即被后台执行,并允许您在短短的任意时间内执行代码,直到您的应用程序被挂起。系统会决定您何时进入此状态,并且您无权在iOS授予您的时间之外在后台保持生命。
在此时间到期之后,您将不再被允许执行代码,直到您被用户前台或在挂起状态下收到远程通知为止。如果您在暂停状态下收到推送,则可以在短时间内再次在后台执行代码,直到再次暂停。
如果用户从应用程序切换器中退出了您的应用程序,则您将立即切换到非运行状态,除非重新启动您的应用程序,否则它将无法执行代码。这也可以防止系统在重新启动时尝试保留和恢复应用程序的状态。
开发人员还需要注意,如果手机决定收回使您处于暂停状态的资源,则操作系统可能会在任何时候从后台终止该应用程序。