Art*_* A. 4 cocoa-touch ios7 nsurlsession
我使用以下配置创建新的NSURLSession
if (!self.session) {
NSURLSessionConfiguration *config = [NSURLSessionConfiguration backgroundSessionConfiguration:[self uniquieIdentifier]];
config.discretionary = NO;
self.session = [NSURLSession sessionWithConfiguration:config delegate:self delegateQueue:[NSOperationQueue mainQueue]];
}
Run Code Online (Sandbox Code Playgroud)
按下按钮后,我试图停止所有当前的下载任务.
[[[self session] delegateQueue] setSuspended:YES];
[[self session] invalidateAndCancel];
Run Code Online (Sandbox Code Playgroud)
不过我在委托方法didFinishDownloadingToURL中得到了响应,我很确定在此之后没有创建新的会话或下载任务.如何阻止所有任务的发生?
Rot*_*ten 16
我不建议使用invalidateAndCancel方法导致队列及其标识符保持无效并且无法重用,直到您重置整个设备.
我使用此代码取消所有挂起的任务.
- (void) cancelDownloadFiles
{
[self.session getTasksWithCompletionHandler:^(NSArray *dataTasks, NSArray *uploadTasks, NSArray *downloadTasks) {
for (NSURLSessionTask *_task in downloadTasks)
{
[_task cancel];
id<FFDownloadFileProtocol> file = [self getFileDownloadInfoIndexWithTaskIdentifier:_task.taskIdentifier];
[file.downloadTask cancel];
// Change all related properties.
file.isDownloading = NO;
file.taskIdentifier = -1;
file.downloadProgress = 0.0;
}
}];
cancel = YES;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10390 次 |
| 最近记录: |