0

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

谁能告诉我,有没有办法在应用程序崩溃之前调用方法(清理数据)。

谢谢!

4

1 回答 1

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];
}
于 2013-05-24T06:57:45.220 回答