【问题标题】:AFNetworking 2.0 How to resume a cancelled downloadAFNetworking 2.0 如何恢复已取消的下载
【发布时间】:2016-02-09 20:54:14
【问题描述】:

我正在使用 AFHTTPSessionManager 作为基类将我的应用程序的网络代码重写为 AFNetworking 2.0。我想重新实现我当前的下载实现,但我无法重新实现我的旧行为。

当前实现:

  • 下载文件到 tmp 文件夹
  • 如果下载成功将文件移动到目标路径
  • 如果下载失败/取消,将下载的数据保留在 tmp 文件夹中
  • 如果用户想继续下载(再次开始下载),请检查 tmp 文件夹并在上次下载终止的位置继续下载

目前的做法:

要开始下载,我使用 AFURLSessionManager 方法downloadTaskWithRequest:progress:destination:completionHandler:。如果下载完成,目标和 completionHandler 块被调用,一切都很好。但是,如果我取消任务,只会调用 completionHandler 块,我找不到已下载文件的位置,这是在正确位置恢复下载所必需的。要恢复下载,我会使用downloadTaskWithResumeData:progress:destination:completionHandler: 方法。但是要获取已经下载的数据,我需要 tmp 下载文件的路径。

问题: 如何获取终止下载文件的路径? 或者如何在不重新下载所有数据的情况下继续下载?

【问题讨论】:

    标签: ios afnetworking-2 resume-download


    【解决方案1】:

    NSURLSessionDownloadTask 具有 cancelByProducingResumeData: 方法。这将提供恢复下载所需的恢复数据对象。

    可以将此简历数据保存到文件中,稍后使用downloadTaskWithResumeData:progress:destination:completionHandler 继续。

    【讨论】:

      猜你喜欢
      • 2012-09-15
      • 1970-01-01
      • 2013-10-09
      • 1970-01-01
      • 1970-01-01
      • 2013-10-30
      • 1970-01-01
      • 1970-01-01
      • 2013-09-30
      相关资源
      最近更新 更多