我的应用程序创建了一些我在整个生命周期中需要的临时文件。我最终需要处理这些文件,因此它们不占用设备上的空间。我认为当应用程序退出时可以删除它们,但是由于已引入了多任务处理,因此生命周期并不像以前那样简单。我的主要问题是:当我的申请移至后台并稍后被杀死时,它会收到吗 applicationWillTerminate:?还是只是从内存中擦掉?

当应用程序移动到后台时,我无法进行清理,因为它可以在操作中间进行背景,并且一旦返回前景,就需要临时文件。我想我可以在启动时清理文件,但我对 applicationWillTerminate: 无论如何行为。

有帮助吗?

解决方案

不, applicationWillTerminate: 未在启用多任务的iOS 4设备上调用。当您的应用终止时,通常意味着该设备用尽了内存,因此即使是 做过 被打电话给没有说明您将有足够的内存来完成任务。

Apple建议您在应用程序进入后台时进行清理。如果您需要几秒钟,您可以要求额外的时间进行此操作(这是对所有应用程序打开的少数多任务场景之一)。

您的其他选项是完成任务完成(无论何时)或启动应用程序时整理。我想还有其他排列...

其他提示

互联网说,该应用程序意愿:在背景中杀死应用程序时未调用。另一种方法是保存一些信息(在nsuserdefaults中,左右),您打开的临时文件,以及启动后检查是否剩下这些文件,然后删除它们。另外,您可以找出iOS如何杀死您的应用程序(我认为这是通过发送信号来完成的,但是我不确定)并将信号处理程序添加到您的应用程序中。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top