系统为了回收资源而杀死进程的顺序是由进程优先级所决定的:
- 应用的优先级又等于优先级最高组件的优先级。
- 如果两个应用具有相同的优先级,那么运行时间最长的进程通常会被杀死。
- 如果一个应用依赖于另一个应用提供的Service或Content Provider,那么为辅助应用分配的优先级至少要与支持的应用相同。
- 活动进程:优先级最高
具有用户正在交互的应用组件。包括一个或多个以下组件:
- 处于活动的Activity
- 执行onReceive方法的Broadcast Receiver
- 执行onStart、onCreate或onDestroy方法的Service组件。
- 可见进程:高优先级
只包含可见Activity或前台Service。前台运行的Service的优先被标记为略低于活动进程。
- 已启动的后台服务进程:中等优先级**
托管了已启动的后台Service的进程。由于执行Service直接与用户进行交互,因此它们的优先级略低于可见Activity或前台Service。
- 后台进程:低优先级
托管了不可见且没有任何Service正在运行的Activity。如按下Home键,应用切换到后台。杀死策略是“后见者先杀”,同时也考虑优先杀死销毁跟多内存的应用。