安卓:杀死第三个应用程序



我在从应用程序中终止第三方应用程序时遇到问题。代码如下:

ActivityManager activityManager = (ActivityManager) getApplicationContext()
        .getSystemService(ACTIVITY_SERVICE);
List<RunningAppProcessInfo> appProcesses = activityManager
        .getRunningAppProcesses();
for (RunningAppProcessInfo appProcess : appProcesses) {
    if (appProcess.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {
        if (appProcess.pkgList[0].equalsIgnoreCase("com.adobe.air")) {
            Log.v("ACTIVITY FOUND", "" + appProcess.pkgList[0]
                    + " - " + appProcess.pid);
            activityManager.killBackgroundProcesses("com.adobe.air");
            activityManager.restartPackage("com.adobe.air");
            android.os.Process.killProcess(appProcess.pid);

        }
    }
}
Log.v("RUN", "----------------------------------");

在AndroidManifest中,我添加了权限android.permission.KILL_BACKGROUND_PROCESSESandroid.permission.RESTART_PACKAGES

在日志中,当软件包com.adobe.air运行时,我可以正确读取消息,但是killBackgroundProcessesrestartPackageKillProcess没有成功强制关闭应用程序本身。怎么了?

  1. 您可以使用Process.killProcess(int pid)来杀死具有与应用相同的 UID。
  2. 您可以使用 ActivityManager.killBackgroundProcesses(String packageName),with 清单中的KILL_BACKGROUND_PROCESSES权限(对于 API>= 8)
  3. 或 ActivityManager.restartPackage (String packageName)(对于 API <8) 终止指定的进程,但地面进程除外。

最新更新