【发布时间】:2014-08-12 01:14:52
【问题描述】:
我有这个要求,
我需要在后台下载文件的播放列表。每个文件在播放列表中都是不同的 url。只有在第一个文件完成后,我才能开始下载第二个文件的问题。
以前有没有人遇到过这个问题。
【问题讨论】:
-
我正在连接一个本地机器,它一次只能处理一个请求。我面临的问题是在哪里提交第二个的 resumetask。如果我这样做,如果我在 didFinishDownloadingToURL 中调用它,则 URLSessionDidFinishEventsForBackgroundURLSession 它的 nt 会被调用,应用程序不会将其视为后台下载,并且线程将在 30 秒后暂停
-
我没有进行详尽的测试,但我已经重现了你的行为,因为随后在
didFinishDownloadingToURL中安排的请求没有在后台继续。我唯一可以建议的其他事情是(a)为下一次下载创建一个具有不同标识符的新后台会话;或 (b) 尝试排队所有下载并将NSURLSessionConfiguration上的HTTPMaximumConnectionsPerHost设置为 1。显然,最好修复服务器以接受并发请求(因为您会看到更好的性能方式)。 -
setting the number of concurrent downloads per host 对那个会话的一个,并同时将它们全部排队呢?如果你在后台添加新东西,在你的 didFinishDownloading 结束时,不能保证 iOS 会优先考虑它们,据我所知,因为它看起来不像是一个专门的用户触发操作。
标签: ios objective-c ios7 nsurlsession nsurlsessiondownloadtask