NSURLSession:如何重新开始下载,但不能继续下载?

时间:2015-06-16 14:26:07

标签: ios objective-c nsurlsession nsurlsessiondownloadtask

我使用NSURLSessionNSURLSessionDownloadTask下载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

0 个答案:

没有答案