In Android, the applications are run as a separate
Linux process. So the application lifecycle is closely related to the
process lifecycle. The application process lifecycle is handled by the
system depending on the current system memory state.
In case of low memory, the Android system kills
some less important process. The process importance is decided depending
on the state of the process components.
The process types depending on the importance are as follows (from most important to least important):
1. Foreground process: A
foreground process is the application process with which the user is
currently interacting. The process is considered to be foreground if its
Activity is at the top of the Activity stack (its onResume() has been
called) or BroadcastReceiver is currently running (onReceive() method is
currently getting executed) or its Service is executing callback
functions like onCreate(), onStart() or onDestroy() methods.
2. Visible Process: A visible process is the process which has an Activity visible to the user (its onPause() method has been called).
3. Service Process: Service process contains a Service for which startService method is called and the service is running.
4. Background Process: The background process does not have any visible activities to the user. (Activity onStop() method has been called).
5. Empty Process: Empty process is the one that does not have any active application components. These processes are kept on for caching purpose.
It is important that application developers
understand lifecycle of the application process. Not using these
correctly can result in the system killing the application’s process
while it is doing important work.
Read More !