iOS如何检测应用程序从进程中删除

检测应用程序何时closures的代理方法是什么?

我的意思是当用户点击这个button时:

在这里输入图像说明

我知道下面的方法:

- (void)applicationDidEnterBackground:(UIApplication *)application; - (void)applicationWillEnterForeground:(UIApplication *)application; 

但是他们的工作并不像我期望的那样。 例如,我用我的应用程序,我已经导航到一些屏幕。 如果我locking屏幕,并返回到应用程序的应用程序调用applicationWillEnterForeground,但我不需要这个,因为我仍然在这个视图(例如testing屏幕视图),我不需要检查任何更改。 但是,如果我的应用程序closures,我开始从例如主屏幕的开始应用程序导航。 所以,如果我的应用程序被closures,我在主屏幕上,我需要检查是否在以前的时间,我有一些行动(例如,如果我通过在testing屏幕视图的testing),并提出这个视图控制器(只有在情况下,如果我closures应用程序不只是locking它或进入背景)。

感谢帮助。

你无法检测到这一点。 从iOS应用程序编程指南 (“应用程序终止”标题):

重要提示:如果您的应用程序当前处于暂停状态,则不会调用applicationWillTerminate:方法。

即使您使用iOS SDK 4及更高版本开发您的应用程序,您也必须准备好在没有任何通知的情况下杀死您的应用程序。 用户可以使用多任务UI来显式终止应用程序。 另外,如果内存受到限制,系统可能会从内存中删除应用程序以腾出空间。 暂停的应用程序不会收到终止通知,但是如果您的应用程序当前正在后台运行(并且未挂起),系统会调用您的应用程序委托的applicationWillTerminate:方法。 您的应用程序无法从此方法请求额外的后台执行时间。

你不能。 当你的应用程序以这种方式被杀时,什么都不知道。 该应用程序被操作系统杀死,没有任何警告。

当你的应用程序进入后台,你无法知道是否将开始新鲜或只是回到前台。 因此,当应用程序进入后台时,您必须正确处理这些事情。

当应用程序再次启动时,恢复您需要的任何状态。

在iOS上,你不能检查。 那就是:这个过程是SIGKILL的。 我知道可以工作的一种方式依赖于杀死一个应用程序的事实,你必须首先按下主页button来暂停应用程序。

因此,您可以在用户使用应用程序时收集您的操作,并在用户暂停应用程序时将其提交到保存的位置。 如果用户恢复,重置列表并重新开始收集信息。 但是,如果用户暂停应用程序,并且您从未获得简历,则在下一次应用程序启动时,您可以阅读列表并从那里恢复。

HTH

您可以实现您的UIApplicationDelegate委托的-applicationWillTerminate:方法来响应终止事件。 但是,不能保证在所有情况下被调用,所以你不应该依赖它被调用。 根据iOS应用程序编程指南 :

如果您的应用程序在终止时正在运行(在前台或后台),系统将调用您的应用程序委托的applicationWillTerminate:方法,以便您可以执行任何所需的清理。 您可以使用此方法来保存用户数据或应用程序状态信息,以便在后续启动时将应用程序恢复到当前状态。 你的方法有大约5秒钟来执行任何任务并返回。 如果它没有及时返回,应用程序将被杀死并从内存中移除。

重要提示:如果您的应用程序当前处于暂停状态,则不会调用applicationWillTerminate:方法。