The application has not been launched or was running but was terminated by the system.
The application is running in the foreground but is currently not receiving events. (It may be executing other code though.) An application usually stays in this state only briefly as it transitions to a different state. The only time it stays inactive for any period of time is when the user locks the screen or the system prompts the user to respond to some event, such as an incoming phone call or SMS message.
The application is running in the foreground and is receiving events.
The application is in the background and executing code. Most applications enter this state briefly on their way to being suspended. However, an application that requests extra execution time may remain in this state for a period of time. In addition, an application being launched directly into the background enters this state instead of the inactive state. For information about how to execute code while in the background, see “Executing Code in the Background.”
The background state is available only in iOS 4 and later and on devices that support multitasking. If this state is not available, applications are terminated and moved to the not-running state instead.
The application is in the background but is not executing code. The system moves an application to this state automatically and at appropriate times. While suspended, an application is essentially freeze-dried in its current state and does not execute any code. During low-memory conditions, the system may purge suspended applications without notice to make more space for the foreground application.
The suspended state is available only in iOS 4 and later and on devices that support multitasking. If this state is not available, applications are terminated and moved to the not-running state instead.
To facilitate movement between these transitions, the system calls the following methods of your application delegate.