Процессы делятся по приоритету на 4 вида, в порядке убывания:
1. Видимый активный процесс (Foreground process). В этом процессе работает приложение, с которым взаимодействует пользователь. Процесс находится в этом состоянии в следующих случаях:
-
Activity, у которой вызван
onResume(), но еще не вызван
onPause() - Во время выполнения
BroadcastReceiver.onReceive() - Запущен
Service и выполняется один из колбэков:
onCreate(),
onStart(),
onDestroy()2. Видимый процесс. Пользователь знает о приложении, запущенном в этом процессе, но не взаимодействует с ним:
-
Activity у которой вызван
onPause(), но еще не вызван
onStop().
-
Service, который запущен через
Service.startForeground(). В этом случае пользователь видит нотификацию, связанную с сервисом.
-
Service, выполняющий функцию, о которой пользователь осведомлен. Например input method service.
3. Background Service. Процесс с сервисом, запущенным командой
startService().
4. Закэшированный процесс. К ним относятся пустые процессы, используемые при старте приложений, и процессы, в которых все активити в
onStop() состоянии.
Система убивает процессы в порядке возрастания их приоритета для восстановления ресурсов.
Подробнее