Android
内存不足时系统如?/p>
Kill
进程
大家其实都或多或少知道,
Android
系统有自已的任务管理器,
当系统内存不足时?/p>
系统需?/p>
KILL
一些进?/p>
(
应用
)
,以回收一部分资源,来保证系统仍可以正常的运行?/p>
而不会崩溃,下面
长沙
android
培训?/p>
就和大家一起来学习下这个原理吧?/p>
进程优先?/p>
(importance hierarchy)
Android
系统尽量保持进程运行的更久,但是仍有时候,需要结束掉老的进程?/p>
?/p>
收内存来保证新的,或更重要的进程运行。要决定哪些进程运行,哪些被
KILL
,系?/p>
会为每个运行的进程或者组件设置其进程优先级。通常
KILL
的顺序是优先级最低,?/p>
后其次,等等依次这样下去?/p>
一共有五级?/p>
前台进程
(Foreground Process)
满足以下条件即为前台进程?/p>
a.
用户当前正在操作?/p>
Activity(Activity.onResume
方法已经被调用了
);
b. Service
绑定到用户当前正在操作的
Activity;
c. Service
在前台运?/p>
(Service.startForeground);
d. Service
正在执行生命周期中的方法之一
(onCreate, onStart, onDestroy);
e. BroadcastReceiver
正在执行
onReceive
方法
;
通常,前台进程是很少?/p>
(
就以上几?/p>
)
,所以它们是最后被
KILL
?/p>
(
内存极少,系
统为了能保证正常运行,且能与用户交互,当前台进程不止一个时,会
KILL
某些前台
进程
)
。不过,这情况,对于目前的手机来说,不太可能发生的事?/p>
可见进程
(Visible process)
满足以下条件即为可见进程?/p>
a. Activity
不为前台进程?/p>
但生命周期处?/p>
onPause
状态,
也就是说?/p>
一?/p>
Dialog
挡住了部?/p>
Activity;
b.
?/p>
1.b
中一样,
Service
绑定在当前可见或前台
Activity;