Application States:
1. Not Running = When the app is not being used.
2. Foreground Inactive = When the app icon is being clicked, it enters the foreground inactive state. It is an intermediary between not foreground inactive and foreground active state. Any screen or view is not visible to the user.
3. Foreground active = Here, the app is totally visible to the user. Users can perform actions on the app here.
4. Background = When the app is not being used by the user e.g. home button is pressed, the app goes into the foreground inactive state first, and then into the background.
5. Suspended = When the app is not being used for quite a long time, or a heavy app is being used while your app is in background state, the it goes into suspended state e.g. playing GTA while WhatsApp is in background will suspend WhatsApp after a certain time period.
Cases:
There is a vague relationship between not running and background state. When any background thread or update needs to be implemented, this happens.
Example: When any data needs to be updated after every certain hour or minute, but the app is in background only, then it goes from background to not running state and vice versa while updation of data, i.e. GPS system works the same way.