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

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

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

如何正确设计后台下载?

或者也许有一些链接到教程,它正确描述了在后台下载文件。

我在下载大量文件时会观察到相同的行为。

当您的应用程序被挂起时,将所有下载任务添加到后台会话,而不是每次完成一个新的下载任务并调用您的委托时,它看起来效果会更好。

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