Support for some types of background execution must be declared in advance by the application that uses them. An application declares this support by including the UIBackgroundModes key in its Info.plist file. Its value is an array that contains one or more strings with the following values:
audio. The application plays audible content to the user while in the background. (This includes streaming audio or video content using AirPlay.)
location. The application keeps users informed of their location, even while running in the background.
voip. The application provides the ability for the user to make phone calls using an Internet connection.
Each of the preceding values lets the system know that your application should be woken up at appropriate times to respond to relevant events. For example, an application that begins playing music and then moves to the background still needs execution time to fill the audio output buffers. Including the audio key tells the system frameworks that they should continue playing and make the necessary callbacks to the application at appropriate intervals. If the application does not include this key, any audio being played by the application stops when the application moves to the background.
In addition to the preceding keys, iOS provides two other ways to do work in the background:
Task completion—Applications can ask the system for extra time to complete a given task.
Local notifications—Applications can schedule local notifications to be delivered at a predetermined time.
For more information about how to initiate background tasks from your code, see “Implementing Long-Running Background Tasks.”
audio. The application plays audible content to the user while in the background. (This includes streaming audio or video content using AirPlay.)
location. The application keeps users informed of their location, even while running in the background.
voip. The application provides the ability for the user to make phone calls using an Internet connection.
Each of the preceding values lets the system know that your application should be woken up at appropriate times to respond to relevant events. For example, an application that begins playing music and then moves to the background still needs execution time to fill the audio output buffers. Including the audio key tells the system frameworks that they should continue playing and make the necessary callbacks to the application at appropriate intervals. If the application does not include this key, any audio being played by the application stops when the application moves to the background.
In addition to the preceding keys, iOS provides two other ways to do work in the background:
Task completion—Applications can ask the system for extra time to complete a given task.
Local notifications—Applications can schedule local notifications to be delivered at a predetermined time.
For more information about how to initiate background tasks from your code, see “Implementing Long-Running Background Tasks.”