在内存不足时为了让系统决定杀死哪个进程,Android根据每个进程中运行的组件以及组件的状态
把进程放入一个"重要级别(importance hierarchy)"中,级别低的进程优先被杀死。
进程的重要级别排序(级别高的排在前面):
1.前台(foreground)进程,与用户当前正在做的事情密切相关。当下面任何一个条件满足时,会考虑将进程移到前台:
进程正在屏幕的最前端运行一个与用户交互的Activity (它的onResume()方法被调用)
进程有一正在运行的BroadcastReceiver (它的BroadcastReceiver.onReceive()方法正在执行)
进程有一个Service,并且在Service的某个回调函数(Service.onCreate(), Service.onStart(), Service.onDestroy())内有正在执行的代码。
2.可见(visible)进程,它有一个可以被用户从屏幕上看到的Activity,但不在前台(它的onPause()方法被调用)。
3.服务(service)进程,进程中存在一个已经用startService()方法启动的Service。
4.后台(background)进程, 拥有一个当前用户看不到的Activity(它的onStop()方法被调用)。
5.空(empty)进程,不包含任何处于活动状态的应用程序组件。 service activiy receiver