我使用alamofire将30 MB的zip文件上传到服务器
这是我的要求
let configuration = URLSessionConfiguration.background(withIdentifier: "identifire.com")
alamoFireManager = Alamofire.SessionManager(configuration: configuration)
let tempZipFilePath = UtilDirectory.tempZipPath.tweak()
alamoFireManager.upload(URL(fileURLWithPath: tempZipFilePath),
to: deligate.url,
method: .post,
headers: headers)
.uploadProgress(closure: {
progress in
print("Upload Progress: \(progress.fractionCompleted)")
})
.validate()
.responseJSON {}
当请求开始时,我可以看到上传进度uploadProgress(closure:_)
,但如果我关闭应用,则会暂停上传。
我希望在关闭应用程序请求后必须在没有中断的情况下完成执行。
但为什么后台上传请求正在停止?
答案 0 :(得分:0)
您必须使用后台任务。您的应用仍然可能被杀死。这取决于操作系统。看看这个https://developer.apple.com/documentation/uikit/uiapplication/1623031-beginbackgroundtask
从UIApplication文档中:
使用您的UIApplication对象执行以下操作... 执行应用程序,以便它可以在后台完成任务 (beginBackgroundTask(expirationHandler :), beginBackgroundTask(withName:expirationHandler:))