【发布时间】:2014-04-25 12:26:24
【问题描述】:
在检查标题(长度和类型)之后,我需要使用后台功能下载某些文件(不是全部),但它必须在同一操作中,而不是创建新任务/请求(因为有时由于短时间内有很多连接,我从服务器收到错误)。 所以我开始任务:
NSURLSessionConfiguration *configuratione = [NSURLSessionConfiguration defaultSessionConfiguration];
NSURLSession *sessione = [NSURLSession sessionWithConfiguration:configuratione delegate:self delegateQueue:nil];
NSURLSessionDataTask *datatask = [sessione dataTaskWithRequest:request];
[datatask resume];
然后,我知道当接收到第一个响应时,可以使用此委托将数据任务转换为下载任务:
- (void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask
didReceiveResponse:(NSURLResponse *)response
completionHandler:(void (^)(NSURLSessionResponseDisposition disposition))completionHandler
{
if(XXXXXXXXXX){
NSLog(@"transform into a download");
completionHandler(NSURLSessionResponseBecomeDownload);
}else{
NSLog(@"Keep loading normally");
completionHandler(NSURLSessionResponseAllow);
}
}
但是,由于数据任务不能使用 BackgroundSessionConfiguration,我想新创建的下载将使用相同的默认会话配置。 如何保持该下载在后台运行?有没有办法将它的会话更改为后台会话?或者是哪种方法?
【问题讨论】:
标签: ios session download nsurlsession