直接上代码:
public void getRunningProcess(Context context) {
Log.d(TAG, "into getRunningProcess ==>>");
PackageInfo pi = new PackageInfo();
ActivityManager am = (ActivityManager) context.getSystemService(ACTIVITY_SERVICE);
List<ActivityManager.RunningAppProcessInfo> runs = am.getRunningAppProcesses();
String name = "";
for (ActivityManager.RunningAppProcessInfo run : runs) {
name = run.processName;
Log.d(TAG, "into getRunningProcess ==>>" + name);
if (name.equals("org.chromium.webview_shell")){
Method forceStopPackage = null;
try {
forceStopPackage = am.getClass().getDeclaredMethod("forceStopPackage", String.class);
Log.d(TAG, "into kill ==>>" + name + "==forceStopPackage=>>" + forceStopPackage);
forceStopPackage.setAccessible(true);
forceStopPackage.invoke(am,name);
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
}
}
权限:
<uses-permission android:name="android.permission.FORCE_STOP_PACKAGES" />
注:这个不要在应用app里面试,我这个是系统下编译的系统签名的应用。
普通app getRunningAppProcesses 获取不到进程列表。