在后台杀死应用程序时删除数据。

时间:2014-03-18 10:54:36

标签: ios ios7 ios6 uiapplicationdelegate uibackgroundtask

我有一个应用程序,我保存数据,但当应用程序在后台被杀时,我必须删除所有已保存的数据。

我尝试使用这种方法:

- (void)applicationWillTerminate:(UIApplication *)application

但它不起作用。有人可以建议我怎么做吗?

3 个答案:

答案 0 :(得分:5)

不确定为什么你需要专门擦除数据终止,但这里需要考虑:

当应用程序在强制退出时写入可能不完整的数据时处理此类情况的另一种方法是,当数据已知为时,他们会写出一个标记好即可。

这样,如果应用程序正常退出,将写入数据并写入标志。

如果应用程序被强制退出,则强制退出的性质不会写入该标志。

然后,当应用程序启动时,它可以查找标志。如果该标志不存在,则应用知道任何数据都不完整,可以丢弃(删除)并重新开始。

希望这有帮助。

答案 1 :(得分:3)

applicationWillTerminate:基本上从未被调用过,你不应再依赖它了。

应用程序在被杀时不会给予任何回调,因此您无法执行任何操作。您需要根据实际用户需求决定不同的方法。这可能涉及加密/不在磁盘上保存某些数据(仅在内存中)/等等......

答案 2 :(得分:0)

我知道,我参加聚会的时间太晚了,但是,如果您可以一直“保留”数据直到下一次启动应用程序,则可以删除/清除application(_:didFinishLaunchingWithOptions)中的数据。