0

我用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

4

0 回答 0