Android 根据包名结束进程的方法
2022-05-30 本文已影响0人
OoYoO
killBackgroundProcesses使用
用killBackgroundProcesses()函数来杀一些进程总是杀不死,源码中解释 系统会在需要的时候再次重启被我们杀死的进程。
真正彻底杀死系统进程的方法是:forceStopPackage(String packageName),不过该方法是@hide,第三方应用不能调用该方法;调用这个方法需要操作系统的签名,得把应用设成
android:sharedUserId="android.uid.system" 权限。
该函数的功能是如此强大:该函数会停止所有和该程序包相关的:同uid程序、相关services、相关Activity等。
只能使用反射的方式调用:
private void killAssignPkg(String packageName){
ActivityManager mActivityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
Method method = null;
try {
method = Class.forName("android.app.ActivityManager").getMethod("forceStopPackage", String.class);
method.invoke(mActivityManager, packageName);
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}