android 通过包名杀死进程

来源:互联网 发布:练胸肌 知乎 编辑:程序博客网 时间:2024/05/16 13:59
 public boolean killBackgroundProcesses(String packageName) throws RemoteException {
        ActivityManager am = (ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE);
        List<RunningAppProcessInfo> infos = am.getRunningAppProcesses();
        boolean success = false;
        for (RunningAppProcessInfo info : infos) {
            if (info.pkgList != null) {
                String[] pkgListCopy = Arrays.copyOf(info.pkgList, info.pkgList.length);
                Arrays.sort(pkgListCopy);
                if (Arrays.binarySearch(pkgListCopy, packageName) >= 0 && info.pid != android.os.Process.myPid()) {
                    Log.i(TAG, "killBackgroundProcesses(%s),pkgList=%s,pid=%s", packageName, Arrays.toString(info.pkgList), info.pid);
                    android.os.Process.killProcess(info.pid);
                    success = true;
                }
            }
        }
        return success;
    }
1 0