如何暂停NSURLSessionDownloadTask?

时间:2015-12-14 06:57:10

标签: ios swift afnetworking

这就是我使用 let sessionConfiguration = NSURLSessionConfiguration.defaultSessionConfiguration() let sessionManager = AFURLSessionManager(sessionConfiguration: sessionConfiguration) if let url = NSURL(string: URLString) { let request = NSURLRequest(URL: url) let sessionDownloadTask = sessionManager.downloadTaskWithRequest(request, progress: nil, destination: { (url, response) -> NSURL in self.createDirectoryAtPath(destinationPath) return destinationPath.URLByAppendingPathComponent(fileName) }, completionHandler: { response, url, error in completionBlock(error) }) sessionDownloadTask.resume() } 的方式:

sessionDownloadTask.cancel()

我知道我可以拨打sessionDownloadTask.resume().pause(),但我需要拨打.resume(),然后<figure>继续下载。有可能吗?

2 个答案:

答案 0 :(得分:4)

NSURLSessionTask的这种方法

Error: Cannot output multiple independently repeated fields at the same time.

文档

  

任务暂停时不会产生网络流量,也不会超时。下载任务可以在以后继续传输数据。所有其他任务必须在恢复时重新开始。

答案 1 :(得分:3)

请勿拨打sessionDownloadTask.cancel()而是使用电话sessionDownloadTask.cancelByProducingResumeData,无论何时想要恢复下载,请使用NSURLSession的方法

sessionManager.downloadTaskWithResumeData:resumeDataObject