How do you extend an iOS app's background execution time when continuing an upload operation?

I'd like a user's upload operation that's started in the foreground to continue when they leave the app. Apple's article Extending Your App's Background Execution Time has the following code listing

func sendDataToServer( data : NSData ) {
   // Perform the task on a background queue.
   DispatchQueue.global().async {
   // Request the task assertion and save the ID.
   self.backgroundTaskID = UIApplication.shared.
             beginBackgroundTask (withName: "Finish Network Tasks") {
     // End the task if time expires.
     UIApplication.shared.endBackgroundTask(self.backgroundTaskID!)
     self.backgroundTaskID = UIBackgroundTaskInvalid
   }
        
   // Send the data synchronously.
   self.sendAppDataToServer( data: data)
        
   // End the task assertion.
   UIApplication.shared.endBackgroundTask(self.backgroundTaskID!)
   self.backgroundTaskID = UIBackgroundTaskInvalid
   }
}

The call to self.sendAppDataToServer( data: data) is unclear. Is this where the upload operation would go, wrapped in Dispatch.global().sync { }?

How big a resource are you uploading?

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

How do you extend an iOS app's background execution time when continuing an upload operation?
 
 
Q