天天看点

Android杀死正在运行的进程

最近有个需求,就是除自己app外杀死所有正在运行的进程。后来经过多番测试会发现无法实现。。。以下是我的测试过程:

记得刚开始学习时有一个killbackgroundprocess(packageName)的方法:

ActivityManager actManager = (ActivityManager) context

                .getSystemService(Context.ACTIVITY_SERVICE);

        List<RunningAppProcessInfo> runningAppProcesses = actManager.getRunningAppProcesses();

通过这种方法先获取到运行进程包名,然后 actManager.killBackgroundProcesses(packageName);杀死他们(杀死后台进程, 需要权限 KILL_BACKGROUND_PROCESSES)。

但是这个方法在android5.0之后就获取不到包名了,然后我找到一个jar包可以获取到运行包名。

Android杀死正在运行的进程

然后尝试killprocess。。。还是杀不掉。

然后我查询了一下,经安全考虑这个方法已经无效了,当杀掉这些进程时,系统会将他们重启。(在5.0以上是这样的,5.0以下没尝试)

还有一些方法,例如:

Android杀死正在运行的进程

这种方法的前提是手机必须root

还有一种是将app变为系统应用,作为只负责上层app开发的我是无法实现的。如果大神有其他好方法,请指教!