【问题标题】:NSURLSESSION background download multipleNSURLSESSION 后台下载多个
【发布时间】: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


【解决方案1】:

发布通知并在主线程上观察它。只需构建您自己的请求队列,当发出通知时,检查队列中是否有剩余请求并根据需要将其关闭。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-11
    • 1970-01-01
    相关资源
    最近更新 更多