在后台杀死申请时,如何进行清理?
-
09-10-2019 - |
题
我的应用程序创建了一些我在整个生命周期中需要的临时文件。我最终需要处理这些文件,因此它们不占用设备上的空间。我认为当应用程序退出时可以删除它们,但是由于已引入了多任务处理,因此生命周期并不像以前那样简单。我的主要问题是:当我的申请移至后台并稍后被杀死时,它会收到吗 applicationWillTerminate:
?还是只是从内存中擦掉?
当应用程序移动到后台时,我无法进行清理,因为它可以在操作中间进行背景,并且一旦返回前景,就需要临时文件。我想我可以在启动时清理文件,但我对 applicationWillTerminate:
无论如何行为。
解决方案
不, applicationWillTerminate:
未在启用多任务的iOS 4设备上调用。当您的应用终止时,通常意味着该设备用尽了内存,因此即使是 做过 被打电话给没有说明您将有足够的内存来完成任务。
Apple建议您在应用程序进入后台时进行清理。如果您需要几秒钟,您可以要求额外的时间进行此操作(这是对所有应用程序打开的少数多任务场景之一)。
您的其他选项是完成任务完成(无论何时)或启动应用程序时整理。我想还有其他排列...
其他提示
互联网说,该应用程序意愿:在背景中杀死应用程序时未调用。另一种方法是保存一些信息(在nsuserdefaults中,左右),您打开的临时文件,以及启动后检查是否剩下这些文件,然后删除它们。另外,您可以找出iOS如何杀死您的应用程序(我认为这是通过发送信号来完成的,但是我不确定)并将信号处理程序添加到您的应用程序中。
不隶属于 StackOverflow