【发布时间】:2015-06-22 10:11:06
【问题描述】:
iOS 8、XCode 6.3.2
我想连续下载多个文件。
在Push notification 之后,APP 将由NSURLSessionDownloadTask 启动BackgroudDownload。
First BackgroudDownload进程完成后,APP要启动Second进程,但是Second BackgroudDownload进程没有启动。
代码如下
// 该方法被推送通知调用
- (void)startBackgroundDownload
{
// Session
NSURLSessionConfiguration *configFirst = [NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:@"com.test.first"];
sessionFirst = [NSURLSession sessionWithConfiguration:configFirst delegate:self delegateQueue:nil];
NSURLSessionConfiguration *configSecond = [NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:@"com.test.second"];
sessionSecond = [NSURLSession sessionWithConfiguration:configSecond delegate:self delegateQueue:nil];
// Start First Download
NSURLRequest *requestFirst = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://xxxxx/first.zip"]];
NSURLSessionDownloadTask *downloadTaskFirst = [sessionFirst downloadTaskWithRequest:requestFirst];
[downloadTaskFirst resume];
}
// 完成下载
- (void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask didFinishDownloadingToURL:(NSURL *)location
{
if (session == sessionFirst) {
NSURLRequest *requestSecond = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://xxxxx/second.zip"
NSURLSessionDownloadTask *downloadTaskSecond = [sessionSecond downloadTaskWithRequest:requestSecond];
[downloadTaskSecond resume];
} else if (session == sessionSecond) {
NSLog(@"all finish");
}
}
第一个成功,第二个失败(未启动)。 我想寻求建议以追求事业。 感谢您提供的任何帮助。
【问题讨论】:
-
下载任务被分成完美的部分,如下所示。 1. 首先制作一组要下载的 zip 文件。 2. 初始化会话对象 3. 编写一个获取URL并开始下载的方法
-
这里有一个例子请检查它github.com/chasseurmic/TWRDownloadManager
标签: ios objective-c push-notification nsurlsessiondownloadtask