我正在使用URLSessionDownloadTask在我的应用程序中下载一个大的ZIP文件。然而,用户可能会在下载过程中关闭应用程序,特别是在处理单个大文件时。在我的研究中,我发现了通过提供按钮或功能暂停或停止下载的解决方案,但我希望能够恢复下载从以前的进展时,用户重新启动应用程序。这是可能与URLSessionDownloadTask,或者我应该考虑使用不同的库?(注意:我不是指在应用程序被杀死后在后台恢复下载。
self.fileDownloadUrl = "www.example.com"
var identifier: String = "com.example.app"
if let downloadUrl = self.fileDownloadUrl {
let config = URLSessionConfiguration.background(withIdentifier: identifier)
self.session = URLSession.init(configuration: config, delegate: self, delegateQueue: nil)
let fileUrl = URL(string: downloadUrl)!
let request = URLRequest(url: fileUrl)
self.task = self.session!.downloadTask(with: request)
return
} else {
// Error
return self.unownedErrorPopUp.showAnimation()
}
字符串
1条答案
按热度按时间dwbf0jvd1#
参见URLSessionConfiguration.background(withIdentifier:)的文档
如果iOS应用程序被系统终止并重新启动,则应用程序可以使用相同的标识符创建新的配置对象和会话,并检索终止时正在进行的传输状态。此行为仅适用于系统正常终止应用程序。如果用户从多任务屏幕终止应用程序,系统将取消会话的所有后台传输。此外,系统不会自动重新启动用户强制退出的应用程序。用户必须明确重新启动应用程序,然后才能开始传输。
因此,如果用户终止应用程序,您的下载将被取消。我不知道你的意思是“.