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

Mat*_*der 16 ios

检测应用程序何时关闭的委托方法是什么.

我的意思是当用户点按此按钮时:

在此输入图像描述

我知道下面的方法:

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

- (void)applicationWillEnterForeground:(UIApplication *)application;
Run Code Online (Sandbox Code Playgroud)

但他们的工作并不像我预期的那样.例如,我使用了我的应用程序,并导航到某个屏幕.如果我锁定屏幕并返回应用程序,应用程序调用applicationWillEnterForeground但我不需要这个,因为我仍然在这个视图(例如测试屏幕视图),我不需要检查任何更改.但是,如果我的应用程序关闭,我开始从启动应用程序导航,例如主屏幕.因此,如果我的应用程序已关闭并且我在主屏幕上,我需要检查以前是否有一些操作(例如,如果我通过了测试屏幕视图上的测试)并显示此视图控制器(仅在我关闭应用程序的情况下)只是锁定它或输入背景).

感谢帮助.

Jos*_*ler 21

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

重要提示:applicationWillTerminate:如果您的应用目前暂停,则不会调用此方法.

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


rma*_*ddy 10

你不能.当您的应用程序以这种方式被杀死时,它不会被告知任何事情.该应用程序被操作系统杀死,没有任何警告.

当您的应用程序进入后台时,您无法知道是否将重新启动或只是返回到前台.因此,当应用程序进入后台时,您必须正确处理事物.

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