Why upload alamofire background request don't executes in background?

孤者浪人 提交于 2019-12-19 11:18:30

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!