在我的应用中,我想下载大文件。因此,我想向用户显示下载进度。为此,我实现了URLSessionDownloadDelegate
。
这很好,直到应用程序进入后台为止。然后用户重新打开应用程序时,不会调用didWriteData
。但是,didFinishDownloadingTo
仍被调用。因此,委托人本身不是问题。
其他一些开发人员在https://forums.developer.apple.com/message/229215#229215中报告了类似的问题。
但是,到目前为止,似乎没有解决此问题的方法或解决方法。这里有没有人找到任何解决方法?
如果没有,我可以用什么代替SessionDownloadTask
?
答案 0 :(得分:3)
这似乎是iOS12中的错误。解决方法是,一旦应用程序再次激活,我将恢复所有下载任务。像这样:
private(set) var session: URLSession?
func applicationDidBecomeActive(_ application: UIApplication) {
session?.getAllTasks(completionHandler: { tasks in
for task in tasks {
task.resume()
}
})
}