Android:杀死第三个应用程序

时间:2013-10-14 22:13:41

标签: android kill-process

我从应用程序中杀死第三方应用程序时出现问题。这是代码:

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 个答案:

答案 0 :(得分:0)

  1. 您可以使用Process.killProcess(int pid)来终止具有的进程 与您的应用程序相同的UID。
  2. 你可以使用     ActivityManager.killBackgroundProcesses(String packageName),with     清单中的KILL_BACKGROUND_PROCESSES权限(对于API&gt; = 8)
  3. 或ActivityManager.restartPackage(String packageName)(对于API&lt; 8)     杀死指定的进程,除了forground进程。