Android 根据包名结束进程的方法

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

}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容