前言
- 在Android系统中每一个App都是独立的,拥有自己的进程,但当系统资源紧张时会杀掉一部分进程释放内存,那么系统是如何选择那些杀掉那些留下呢? 这就涉及到进程优先级问题
进程优先级
-
前台进程
-
可与用户交互的进程
可与用户交互的Activity(已调用onResume()) 有广播接受者(BroadcastReceiver)正在接收广播 有服务(Service)正在执行它的回调方法 有Service调用了startForeground()方法使之位于前台运行
-
-
可见进程
-
一般不会随意销毁,但当系统内存吃紧的情况下会被销毁,释放内存
有不在前台,但仍对用户可见的Activity(已调用onPause) 有绑定到可见(或前台)Activity的service
-
-
服务进程
-
在内存不够维持所有前台进程与可见进程运行时,服务进程会被销毁。
运行着一个通过startService()启动的Service()
-
-
后台进程
-
可能随时被系统销毁,回收内存
用户返回到系统界面或切换到其他App,看不到但还在运行的程序
-
空进程
-
最容易被销毁的进程
没有任何活跃组件的进程
-