我在后台下载数据。
因此,如果用户按下主页按钮并通过双击应用程序图标强制退出应用程序,那么我需要一些数据清理。
我尝试在委托方法applicationWillTerminate
中进行数据清理,但app在崩溃时没有调用此方法。
我无法在applicationDidEnterBackground
中进行数据清理,因为我的应用会在后台保存数据。我搜索了很多个小时..但我对此毫无头绪。
任何人都可以告诉我,有没有办法在应用程序崩溃之前调用方法(清理数据)。
谢谢!
答案 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];
}