当Android系统出现系统资源不足时,会杀死(kill)一些进程,但是这不是随机的,而是具有一定规则的:
1、空进程
这是Android系统优先杀死的,因为此时该进程已经没有任何用途。
2、后台进程
包含不可见的Activity,即跳转到其他activity后,由于资源不足,系统会将原来的activity杀死(即跳转的来源)
3、服务进程
即Service,当系统资源不足时,系统可能会杀掉正在执行任务的Service。因此在Service执行比较耗时的操作,并不能保证一定能执行完毕。
4、可见进程
当前屏幕上可以看到的activity,例如显示一个对话框的activity,那么对话框变成了前台进程,而调用他的activity是可见进程,但并不是前台的。
5、前台进程
当前处于最前端的activity,也就是Android最后考虑杀死的对象。一般来说,前台进程Android系统是不会杀死的,只有当前4个都杀掉资源依旧不够才可能会发生。
这就是Android系统释放资源的优先顺序,那么反过来就是他们的优先级,即前台进程是最先获取资源,最后释放的。