Android

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();
  }

}
上一篇下一篇

猜你喜欢

热点阅读