2

如何杀死android中的应用程序?

killPackageProcesses(services.get(i).baseActivity.getPackageName());

这是函数 killPackageProcesses

public void killPackageProcesses(String packagename) {
    int pid = 0;
    ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
    List<ActivityManager.RunningAppProcessInfo> pids = am
            .getRunningAppProcesses();
    for (int i = 0; i < pids.size(); i++) {
        ActivityManager.RunningAppProcessInfo info = pids.get(i);
        if (info.processName.equalsIgnoreCase(packagename)) {
            pid = info.pid;
        }
    }
    android.os.Process.killProcess(pid);

}

它不起作用。它如何适用于其他应用程序?许可是书面的。

<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" />
4

1 回答 1

3

你不能只杀死 Android 中的任何进程。从文档中Process

请注意,尽管此 API 允许我们根据其 PID 请求终止任何进程,但内核仍会对您实际能够终止的 PID 施加标准限制。通常这意味着仅运行调用者的包/应用程序的进程以及该应用程序创建的任何其他进程;共享一个公共 UID 的包也将能够杀死彼此的进程。

另请注意,您在清单中请求的权限并不像您认为的那样起作用。根据文档KILL_BACKGROUND_PROCESS

允许应用程序调用 killBackgroundProcesses(String)。

于 2013-08-12T17:00:09.463 回答