问题
I use alamofire in order to upload 30 mb zip file to server
here is my request
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 {}
When request is starting I can see upload progress uploadProgress(closure:_)
, but if I close the app uploading is paused.
I expect that after closing the app request has to finish executing without interrupt.
But why background upload request is stopping?
回答1:
You have to use a background task. Your app still may get killed though. It's up to the OS. Take a look at this https://developer.apple.com/documentation/uikit/uiapplication/1623031-beginbackgroundtask
From the UIApplication docs:
Use your UIApplication object to do the following...Extend the execution of the app so that it can finish a task in the background (beginBackgroundTask(expirationHandler:), beginBackgroundTask(withName:expirationHandler:))
来源:https://stackoverflow.com/questions/42042860/why-upload-alamofire-background-request-dont-executes-in-background