iOS:如何在应用程序崩溃之前清理数据

时间:2013-05-24 06:50:21

标签: ios

我在后台下载数据。 因此,如果用户按下主页按钮并通过双击应用程序图标强制退出应用程序,那么我需要一些数据清理。 我尝试在委托方法applicationWillTerminate中进行数据清理,但app在崩溃时没有调用此方法。 我无法在applicationDidEnterBackground中进行数据清理,因为我的应用会在后台保存数据。我搜索了很多个小时..但我对此毫无头绪。

任何人都可以告诉我,有没有办法在应用程序崩溃之前调用方法(清理数据)。

谢谢!

1 个答案:

答案 0 :(得分:0)

如果您的应用崩溃或被强行退出,则无法清理数据。 您可以在下次打开数据时清理数据。根据您正在做的事情,您可以使用NSUserDefaults内的标记来告知您是否需要清理数据。

例如,下载开始时,您可以设置:

[[NSUserDefaults standardUserDefaults] setObject:[NSNumber numberWithBool:YES] forKey:@"pendingDownload"];
[[NSUserDefaults standardUserDefaults] synchronize];

下载完成后:

[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"pendingDownload"];
[[NSUserDefaults standardUserDefaults] synchronize];

内部didFinishLaunchingWithOptions

if([[[NSUserDefaults standardUserDefaults] objectForKey:@"pendingDownload"] boolValue]){
    // clean data
    [[NSUserDefaults standardUserDefaults] removeObjectForKey:@"pendingDownload"];
    [[NSUserDefaults standardUserDefaults] synchronize];
}