问题来了:如何使用新的后台传输服务一个一个地下载多个文件(包括应用挂起的情况)?我读了这个awesome tutorial on objc.io并让它为一个文件工作。但是我需要一个一个地下载文件(所以添加多个NSURLSessionDownloadTasks
是行不通的(因为下载URL只在短时间内有效)
基本上,我想做的是,一旦通知应用程序上一次下载已在 application:handleEventsForBackgroundURLSession:completionHandler:
中完成,就安排另一次下载。但是我只调用了一次这个方法。知道为什么吗?任何关于如何在应用程序暂停时实现多个文件的顺序下载的建议都值得赞赏。
更新:
抱歉,我可能不清楚实际问题是什么:一般情况下并不是我没有收到有关任务完成的通知,而是我没有application:handleEventsForBackgroundURLSession:completionHandler:
当应用在后台运行时调用第二个下载任务。我确实为第一个下载任务调用了它(当应用程序在前台时启动,然后在下载完成之前转到后台)然后我触发第二个下载任务,调用我得到的 completionHandler
在 application:handleEventsForBackgroundURLSession:completionHandler:
中并且永远不会为第二个文件调用此方法。
最佳答案
我建议在NSURLSessionTaskDelegate
的中添加下一个文件- (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didCompleteWithError:(NSError *)error
。每当上一个任务完成时都会调用此方法,因此看起来是将下一个文件排入队列的合理选择。
关于ios - 使用 iOS 后台传输服务下载多个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22842933/