我正在 AFNetworking 的帮助下下载大文件 ~50-100Mb,我想在应用程序终止时保存它的下载状态以便稍后恢复下载。我已注册我的对象以终止通知:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(appWillTerminate) name:UIApplicationWillTerminateNotification object:nil];
当用户从应用程序切换器关闭应用程序时调用此方法:
-(void)appWillTerminate {
NSLog(@"---------- will terminate");
[downloadTask cancelByProducingResumeData:^(NSData *resumeData) {
if(resumeData) {
[self saveResumeData:resumeData];
} else {
[[NSFileManager defaultManager] removeItemAtPath:[self createCachePath] error:nil];
}
}];
}
但是这个 block :^(NSData *resumeData)
从未被调用,所以我无法保存简历数据。
此外,当应用程序首先移至后台然后关闭时,根本不会调用此方法。
我不想在进入后台时调用此方法,因为我想继续下载。我做错了什么吗?
最佳答案
尝试更改逻辑:添加“暂停按钮”,如果用户要关闭应用程序,则需要先暂停下载,然后再关闭应用程序。如果用户忽略暂停,从您之前或从头保存的位置恢复下载不是问题。这里的主要内容 - 继续在后台下载。
关于ios - 在应用程序关闭时从 cancelByProducingResumeData 保存数据 [iOS7],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22599673/