【发布时间】:2014-08-25 04:10:24
【问题描述】:
当应用关闭时,我在使用 NewsstandKit 下载时遇到了困难。
我的报亭应用程序下载确实以后台模式启动,并退出后台或推送下载通知,下载问题一切正常,但我关闭应用程序然后任务正在下载,下载任务失败。
它是否必须与服务器做一些事情?还是其他人?
【问题讨论】:
标签: ios newsstand-kit
当应用关闭时,我在使用 NewsstandKit 下载时遇到了困难。
我的报亭应用程序下载确实以后台模式启动,并退出后台或推送下载通知,下载问题一切正常,但我关闭应用程序然后任务正在下载,下载任务失败。
它是否必须与服务器做一些事情?还是其他人?
【问题讨论】:
标签: ios newsstand-kit
您需要在应用再次启动时恢复下载。
这样的事情会奏效
// Inside App Delegate Did Finish Launching
NKLibrary *nkLib = [NKLibrary sharedLibrary];
for(NKAssetDownload *asset in [nkLib downloadingAssets]){
[asset downloadWithDelegate:newsstandDownloadDelegate];
}
如果您阅读documentation,您会发现以下段落详细说明了您应该如何处理应用程序终止:
在下载资产时,应用程序可能会暂停 甚至完全终止,例如,如果没有足够的 内存或用户强制退出应用程序。应用程序 (假设它具有 newsstand-content 属性)稍后重新启动 进入后台处理下载完成或任何 身份验证挑战或与之相关的错误。程序在 本案例如下:
当应用程序启动时,它可以使用 UIApplicationLaunchOptionsNewsstandDownloadsKey 键访问数组 在传递到的 launchOptions 字典中 应用程序:didFinishLaunchingWithOptions:。如果有一个数组,它 包含导致启动的标识符;这些可能是 已完成下载或可以下载的标识符 未完成下载。它遍历数组 NKAssetDownload 对象的 downloadAssets 属性 NKLibrary 对象并在每个对象上调用 downloadWithDelegate:。如果 它想要,应用程序可以使用在 检查哪些资产下载导致重新启动的上一步。 NSURLConnectionDownloadDelegate 对象处理资源下载 像往常一样。 Newsstand Kit 框架期望所有调用 它的方法要在主线程上进行; NSURLConnectionDelegate 协议方法也在主线程上被调用。
【讨论】: