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

iOS:被系统杀死的应用程序和被用户杀死的应用程序有什么区别?,ios,background,state,Ios,Background,State,我必须按照我的要求定期(每天一次)执行我的应用程序的一些代码(从服务器下载/上传数据) 我了解到,当用户通过UI杀死应用程序时,不可能从应用程序中执行任何代码,而在某些情况下,当系统终止应用程序时,则可能执行任何代码 我真的不明白在这两种情况下达到了什么状态。不跑步?暂停的?在下图中如何区分这些情况 如果用户关闭了您的应用程序,但没有从应用程序切换器中退出,您将立即被禁止在短时间内任意执行代码,直到应用程序挂起。系统会决定你何时进入这种状态,而你在iOS允许的时间之外没有能力让自己在后台生存 在

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

我了解到,当用户通过UI杀死应用程序时,不可能从应用程序中执行任何代码,而在某些情况下,当系统终止应用程序时,则可能执行任何代码

我真的不明白在这两种情况下达到了什么状态。不跑步?暂停的?在下图中如何区分这些情况


如果用户关闭了您的应用程序,但没有从应用程序切换器中退出,您将立即被禁止在短时间内任意执行代码,直到应用程序挂起。系统会决定你何时进入这种状态,而你在iOS允许的时间之外没有能力让自己在后台生存

在这段时间到期后,您将不再被允许执行代码,直到您被用户预先阻止或收到处于挂起状态的远程通知。如果您在挂起时收到推送,则允许您在短时间内再次在后台执行代码,直到再次挂起

如果用户从应用程序切换器退出您的应用程序,您将立即切换到“未运行”状态,并且将无法再执行代码,除非重新启动您的应用程序。这也将防止系统试图在重新启动时保留和恢复应用程序的状态


开发者还需要注意,如果手机决定收回使您暂停的资源,操作系统可能随时从后台终止应用程序。

这个问题已经被提出:复制的可能性。这不是完全相同的问题。我询问这两个应用程序终止是否将应用程序置于相同的状态。据我所知,当用户从应用程序切换器中终止应用程序时,以及当系统在后台终止应用程序时,应用程序的状态完全相同。是吗?是的,在这两种情况下,应用程序都没有运行。但是,当用户手动终止应用程序时,状态恢复框架会故意丢弃任何状态信息,这样应用程序就不会陷入无限循环的恢复崩溃中。在这方面,重新启动时的生命周期将略有不同,这取决于应用程序是被系统还是用户杀死的。