Which background mode should I use?

We have developed a WiFi device which needs to have its firmware directly

using iOS app mobile device. The Wifi device is first turned into hotspot mode

and connected to iPhone using its wifi. Then firmware update process is started

using simple tcp connection. The whole process takes about 30-40 mins in a windows

application. The question is which background mode should i use so that the tcp

connection is not cut off by iOS when it goes in background or if phone gets locked .

I would like to have a notification showing progress as well. Any suggestions?


According to my knowledge there are these background modes :

  • Play audio: The app can continue playing and/or recording audio in the background.
  • Receive location updates: The app can continue to get callbacks as the device’s location changes.
  • Perform finite-length tasks: The generic “whatever” case, where the app can run arbitrary code for a limited amount of time.
  • Background Fetch: Get updates to the latest content scheduled by iOS.

But which should i choose?