在后台下载多个文件(仅限iOS 7)

在后台下载多个文件(仅限iOS 7),ios,ios7,download,background-process,nsurlsession,Ios,Ios7,Download,Background Process,Nsurlsession,我目前正在开发一个只在iOS 7上运行的播客应用程序,它有一个功能,可以在后台模式下同步和下载最近的剧集 很明显,通过同步,我实现了 应用程序:performFetchWithCompletionHandler 方法并调用其中的sync方法,当同步完成时,我使用UIBackgroundFetchResultNewData调用completionHandler,如果失败,我将调用UIBackgroundFetchResultFailed。但是,当我运行下载管理器开始下载所有新的剧集时,可能需要很长

我目前正在开发一个只在iOS 7上运行的播客应用程序,它有一个功能,可以在后台模式下同步和下载最近的剧集

很明显,通过同步,我实现了
应用程序:performFetchWithCompletionHandler
方法并调用其中的sync方法,当同步完成时,我使用
UIBackgroundFetchResultNewData
调用completionHandler,如果失败,我将调用
UIBackgroundFetchResultFailed
。但是,当我运行下载管理器开始下载所有新的剧集时,可能需要很长时间,这取决于网络质量和文件大小,而后台模式在某个时候会冻结并暂停最近的下载

如何正确设计后台下载


或者是一些教程的链接,它正确地描述了在后台下载文件。

我在下载大量文件时也观察到了同样的行为

当应用程序挂起时,将所有下载任务添加到后台会话时,它的性能似乎比每次下载任务完成并调用代理时添加新的下载任务要好


另一个选择是使用NewsstandKit。后台下载运行非常顺利,但您有一些限制,如24小时阈值,您的应用程序将隐藏在报摊中

我正在解决一个类似的问题。我想知道AFNetworking 2.0是否对此提供支持。您是否观看了关于此的WWDC 2013会议?后台下载的全部思想是由系统有效地管理它们。它不像UNIX后台下载应用程序那样以100%的CPU速度运行,其他的一切都没有发生。苹果对这一设备很吝啬,所以它将扼杀一切。正如他们所说的,如果你一次下载4到10个文件,而不是一个文件请求接着一个文件请求,你可能会得到更好的服务。请注意,如果设备没有插上电源,系统的资源将非常有限。@DavidH,感谢您提供的信息,非常感谢。但是你对如何以正确的方式实现后台下载有什么想法吗?我最近将NSURLConnection代码转换为使用NSURLSession。我花了两三天的时间——比我预期的要长。它只在前台工作——我计划支持后台传输,但我从WWDC视频中知道有很多细节(这里的其他帖子也这么说)。没有什么可以取代花时间阅读和观看苹果在这方面的产品。