我用NSURLSession
, 和NSURLSessionDownloadTask
来下载 o 文件。在下载期间,我杀死了应用程序(通过点击主页按钮,然后刷掉应用程序)。正如我所料,我在以下函数中收到错误“取消”:
@property (nonatomic, strong) NSURLSessionDownloadTask *downloadTask; - (void)URLSession:(NSURLSession *)session 任务:(NSURLSessionTask *)task didCompleteWithError:(NSError *)error { …… self.downloadTask = nil; ... }
错误的用户信息包含恢复数据,以便稍后我们可以继续下载。但是,我不希望那样。我想要的是当我重新打开应用程序时,它会再次开始下载,但不会继续下载。
我分配了self.downloadTask = nil
,但它不能解决问题。
我用来开始下载的以下功能:
-(无效)下载:(NSURLRequest *)请求{ if (self.downloadTask != nil) 返回; self.session = [self sharedBackgroundSession]; self.downloadTask = [self.session downloadTaskWithRequest:request]; [self.downloadTask 恢复]; } - (NSURLSession *)sharedBackgroundSession { 静态 NSURLSession *session = nil; 静态 dispatch_once_t 一次令牌; dispatch_once(&onceToken, ^{ NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:@"abs.com.DownloadApp"]; session = [NSURLSession sessionWithConfiguration:configuration delegate:self delegateQueue:nil]; }); 返回会话; }
注意:我使用的是 XCode6,Objective-C