@wangwangheng
2015-06-22T15:04:07.000000Z
字数 1101
阅读 1913
原理性知识
Android的进程等级分为五个:
* Active Process(Foreground Process)
* Visible Process
* Started Servie Process
* Background Process
* Empty Process
其中,Active Process属于Critical Priority的进程
Visible Process、Started Service Process属于High Priority的进程
Background Process、Empty Process 属于Low Priority的进程
杀死Foreground Process需要用户响应(例如ANR弹出等),因为它的优先级是最高的
当前进程不是焦点进程,Activity不在前端显示,但是也没有完全隐藏,能够看得见,比如弹出对话框的时候(或者输入法弹出框等)
一个Bound到Visible或者Foreground的Activity的Service所在的进程也属于Visible Process
正在运行的不属于Active Process和Visible Process的Service所在的进程(比如开启了新线程去下载文件的Service所在的进程)
不可见状态的Activity进程,而且没有任何现相关的Service运行的(onStop()被调用)的进程;系统有一个后台进程列表,一般情况下采取后进先出(LIFO)的原则来释放后台进程资源
没有任何Components的进程,保留这个进程主要是为了缓存的需要
一个不执行任何操作的Activity,按下Home键之后,属于Background Process;按下Back键属于Empty Process
System.exit(0);// 直接粗暴的杀死进程
Process.killProcess(Process.myPid());