我使用NSURLSession
和NSURLSessionDownloadTask
下载o文件。在下载期间,我终止应用程序(通过点击主页按钮,然后滑动应用程序)。我按照预期在以下函数中收到错误“取消”:
@property (nonatomic, strong) NSURLSessionDownloadTask *downloadTask; - (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didCompleteWithError:(NSError *)error { .... self.downloadTask = nil; ... }
错误的userinfo包含恢复数据,以便稍后我们可以继续下载。但是,我不希望这样。我想要的是当我重新打开应用程序时,它会再次开始下载,但不能继续下载。
我指定了self.downloadTask = nil
,但它无法解决问题。
以下我用来开始下载的功能:
-(void) download:(NSURLRequest*) request { if (self.downloadTask != nil) return; self.session = [self sharedBackgroundSession]; self.downloadTask = [self.session downloadTaskWithRequest:request]; [self.downloadTask resume]; } - (NSURLSession *)sharedBackgroundSession { static NSURLSession *session = nil; static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:@"abs.com.DownloadApp"]; session = [NSURLSession sessionWithConfiguration:configuration delegate:self delegateQueue:nil]; }); return session; }
注意:我正在使用XCode6,Objective-C