【问题标题】:iOS Newsstand download failed when shut down the app关闭应用程序时 iOS 报亭下载失败
【发布时间】:2014-08-25 04:10:24
【问题描述】:

当应用关闭时,我在使用 NewsstandKit 下载时遇到了困难。

我的报亭应用程序下载确实以后台模式启动,并退出后台或推送下载通知,下载问题一切正常,但我关闭应用程序然后任务正在下载,下载任务失败。

它是否必须与服务器做一些事情?还是其他人?

【问题讨论】:

    标签: ios newsstand-kit


    【解决方案1】:

    您需要在应用再次启动时恢复下载。

    这样的事情会奏效

    // 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 协议方法也在主线程上被调用。

    【讨论】:

    • 非常感谢,我看到文档并恢复NKLibrary的问题,关于恢复我的下载是好的,我的问题是当我'关闭'应用程序时,下载断开,为什么?
    • NSURLRequest *req = MyURLRequest; NKLibrary *nkLib = [NKLibrary sharedLibrary]; NKIssue *nkIssue = [nkLib issueWithName:issueID]; NKAssetDownload *assetDownload = [nkIssue addAssetWithRequest:req]; self.downloadConnect = [资产 downloadWithDelegate:self];
    • 您是否已将报亭密钥添加到您的应用程序列表中?即,您的应用是否真的出现在报亭货架上?
    • 您如何准确跟踪下载以确定它已停止?
    • 是的,plist 设置没问题,出现在报亭中。>我连接了 zip 文件的问题下载 url,开始下载,通过 expectedTotalBytes xx% 准确,然后我在后台关闭了应用程序,然后连接下载失败。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-21
    • 1970-01-01
    • 1970-01-01
    • 2014-08-04
    相关资源
    最近更新 更多