android系统会尽量长期的保留应用程序的进程。
进程的优先级, 提供系统回收进程的一套方案. 从高到低回收进程.
只有系统内存严重不足的时候 回收进程。回收的顺序如下:
1.Foreground process 前台进程.用户正在操作的进程.
2.Visible process 可视进程. 不能直接操作, 并且没有获取焦点. 但是可以看到的应用.
3.Service process 服务进程. 在后台长期运行, 没有界面的进程.
4.Background process 后台进程. 当我们打开一个应用程序, 没有关闭它, 点击home键, 托管到后台.
5.Empty process 空进程. 当我们把一个应用程序关掉后, 系统没有立刻的把进程给回收掉, 这时候进程中没有组件, 变成空进程.
android系统做了一个优化, 当特殊情况下, 需要回收Service process, Visible process, Foreground process 进程时, 回收后, 当系统内存够用时,又会把杀死的进程重新启动.
只有用户手动的把服务给关闭掉, 那么服务才会真正的销毁. 如果用户没有手动关闭, 服务会一直运行在系统中.
#########################################################
有责任感的程序员不写流氓代码。
杀死自已程序的进程:
//专注于自杀的方法。
android.os.Process.killProcess(android.os.Process.myPid());
杀死别的程序的进程:
//相当于得到进程管理器
ActivityManager am= (ActivityManager) getSystemService(ACTIVITY_SERVICE);
//专注于杀死别人
am.killBackgroundProcesses(packname);