关于断点续传,原理其实很简单,就是执行函数
self.downloadTask = [self.session downloadTaskWithResumeData:self.resumeData];
self.resumeData = nil;
一般的下载
self.downloadTask = [self.session downloadTaskWithURL:url];
至于一些需要注意的地方,看Demo: github.com/tanghaitao/…
注意:
1. cancelByProducingResumeData
2. 后台下载
2.1 NSURLSessionConfiguration *config = [NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:[self currentDateStr]];
2.2 - (void)application:(UIApplication *)application handleEventsForBackgroundURLSession:(NSString *)identifier completionHandler:(void (^)(void))completionHandler 这里回到 session
2.3 - (void)applicationWillEnterForeground:(UIApplication *)application 进入前台的提示 根据id 去找
2.4 - (void)URLSessionDidFinishEventsForBackgroundURLSession:(NSURLSession *)session{ NSLog(@"所有后台任务已经完成: %@",session.configuration.identifier); }
3. 利用文件流避免内存爆增的问题
//[self.receiveData appendData:data]