swift 如何在应用终止后恢复URLSessionDownloadTask?

dzhpxtsq  于 2023-11-16  发布在  Swift
关注(0)|答案(1)|浏览(122)

我正在使用URLSessionDownloadTask在我的应用程序中下载一个大的ZIP文件。然而,用户可能会在下载过程中关闭应用程序,特别是在处理单个大文件时。在我的研究中,我发现了通过提供按钮或功能暂停或停止下载的解决方案,但我希望能够恢复下载从以前的进展时,用户重新启动应用程序。这是可能与URLSessionDownloadTask,或者我应该考虑使用不同的库?(注意:我不是指在应用程序被杀死后在后台恢复下载。

  1. self.fileDownloadUrl = "www.example.com"
  2. var identifier: String = "com.example.app"
  3. if let downloadUrl = self.fileDownloadUrl {
  4. let config = URLSessionConfiguration.background(withIdentifier: identifier)
  5. self.session = URLSession.init(configuration: config, delegate: self, delegateQueue: nil)
  6. let fileUrl = URL(string: downloadUrl)!
  7. let request = URLRequest(url: fileUrl)
  8. self.task = self.session!.downloadTask(with: request)
  9. return
  10. } else {
  11. // Error
  12. return self.unownedErrorPopUp.showAnimation()
  13. }

字符串

dwbf0jvd

dwbf0jvd1#

参见URLSessionConfiguration.background(withIdentifier:)的文档
如果iOS应用程序被系统终止并重新启动,则应用程序可以使用相同的标识符创建新的配置对象和会话,并检索终止时正在进行的传输状态。此行为仅适用于系统正常终止应用程序。如果用户从多任务屏幕终止应用程序,系统将取消会话的所有后台传输。此外,系统不会自动重新启动用户强制退出的应用程序。用户必须明确重新启动应用程序,然后才能开始传输。
因此,如果用户终止应用程序,您的下载将被取消。我不知道你的意思是“.

相关问题