为什么 URLSession 没有在 iOS 10 恢复?
Why is URLSession not resuming on iOS 10?
在我的 iOS 下载管理器中
RCDownload 是一个 object,它包含下载的标题、url、下载状态和恢复数据位置
我有一个名为 defaultSession 的块变量,如下所示:
lazy var defaultSession: URLSession = {
let configuration = URLSessionConfiguration.background(withIdentifier: "RCBackgroundDownloader")
configuration.isDiscretionary = false
configuration.sessionSendsLaunchEvents = true
let session = URLSession(configuration: configuration, delegate: self, delegateQueue: nil)
return session
}()
我的应用能够暂停和恢复下载
我的简历函数如下所示:
func resume(download: RCDownload) {
var data: Data!
do {
data = try Data(contentsOf: download.getResumeDataURL())
} catch {}
download.downloadState = downloadStatus.downloading
if data != nil {
download.downloadTask = self.defaultSession.downloadTask(withResumeData: data)
download.downloadTask?.resume()
} else {
download.downloadTask = self.defaultSession.downloadTask(with: download.downloadURL)
download.downloadTask?.resume()
}
}
此代码在 iOS 9 上完美运行,但在 iOS 10 上,当我终止我的应用程序并重新打开它时它不会恢复,但没有出现任何错误(提醒:它在 iOS 9),我很困惑有什么解释吗?
错误在iOS10,Apple 必须修复它。不过,根据这个 thread on Apple's forum,他们已经为 10.2 版本修复了它。
您也可以查看此 。他们提供了详细的解决方案。
在我的 iOS 下载管理器中
RCDownload 是一个 object,它包含下载的标题、url、下载状态和恢复数据位置
我有一个名为 defaultSession 的块变量,如下所示:
lazy var defaultSession: URLSession = {
let configuration = URLSessionConfiguration.background(withIdentifier: "RCBackgroundDownloader")
configuration.isDiscretionary = false
configuration.sessionSendsLaunchEvents = true
let session = URLSession(configuration: configuration, delegate: self, delegateQueue: nil)
return session
}()
我的应用能够暂停和恢复下载
我的简历函数如下所示:
func resume(download: RCDownload) {
var data: Data!
do {
data = try Data(contentsOf: download.getResumeDataURL())
} catch {}
download.downloadState = downloadStatus.downloading
if data != nil {
download.downloadTask = self.defaultSession.downloadTask(withResumeData: data)
download.downloadTask?.resume()
} else {
download.downloadTask = self.defaultSession.downloadTask(with: download.downloadURL)
download.downloadTask?.resume()
}
}
此代码在 iOS 9 上完美运行,但在 iOS 10 上,当我终止我的应用程序并重新打开它时它不会恢复,但没有出现任何错误(提醒:它在 iOS 9),我很困惑有什么解释吗?
错误在iOS10,Apple 必须修复它。不过,根据这个 thread on Apple's forum,他们已经为 10.2 版本修复了它。
您也可以查看此