안드로이드 앱은 하나의 프로세스로서 각자의 독립된 메모리 공간을 가지고 실행된다.
하지만, 메모리 공간이 부족해질 경우 시스템이 프로세스를 강제로 종료할 수 있는데 이 때 프로세스들의 우선순위에 따라서 먼저 종료될 프로세스가 결정된다.
사용자와 현재 상호작용하고 있는 프로세스
직접 상호작용하고 있는 onResume 상태의 액티비티 뿐만 아니라
BroadcastReceiver.onReceive()가 실행되고 있는 BroadcastReceiver, Service Callback(Service.onCreate(), Service.onStart(), Service.onDestroy()가 실행되고 있는 서비스도 포그라운드 상태이다.
포그라운드 상태인 프로세스는 적기 때문에 거의 제거될 일 없다.
사용자가 해당 작업이 존재함을 알고 있는 프로세스
startService로 실행되고 있는 서비스
현재 당장 필요하지 않아서 언제든 삭제될 수 있는 프로세스
4 -> 3 -> 2 -> 1 순서로 삭제됨
https://developer.android.com/guide/components/activities/process-lifecycle