7

这里有一个问题:如何使用新的后台传输服务(包括应用程序被暂停的情况)逐个下载多个文件?我在 objc.io 上阅读了这个很棒的教程,并让它适用于一个文件。但是我需要一个一个的下载文件(所以添加多个NSURLSessionDownloadTaskss是行不通的(因为下载的url只在很短的时间内有效)

基本上我要做的是在通知应用程序上一次下载完成后安排另一个下载application:handleEventsForBackgroundURLSession:completionHandler:。但是我只调用了一次这个方法。知道为什么吗?任何关于如何在应用程序暂停时实现多个文件的顺序下载的建议都值得赞赏。

更新:

抱歉,我可能不清楚实际问题是什么:并不是说我没有收到关于任务完成的通知,而是当应用程序在 backgorund中运行时我没有application:handleEventsForBackgroundURLSession:completionHandler:调用第二个下载任务。我确实为第一个下载任务调用了它(它在应用程序处于前台时开始,然后在下载完成之前进入后台)然后我触发第二个下载任务,调用我进入并且从未调用过此方法第二个文件。completionHandlerapplication:handleEventsForBackgroundURLSession:completionHandler:

4

2 回答 2

2

我建议在NSURLSessionTaskDelegate's中添加下一个文件- (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didCompleteWithError:(NSError *)error。每当上一个任务完成时都会调用此方法,因此将下一个文件排入队列似乎是一个合理的选择。

于 2014-04-03T16:05:52.333 回答
1

从本教程 ( http://www.appcoda.com/background-transfer-service-ios7/ ) 的角度来看,您似乎必须同时开始下载这两个文件。由于您配置了会话中每个主机的最大连接数,我想您可以将并行下载限制为1,然后启动两个下载。

我目前正在尝试将其移植到 MonoTouch ......似乎很有希望......

于 2015-02-23T13:36:43.497 回答