以编程方式杀死另一个进程/应用程序

时间:2012-03-05 08:05:48

标签: android

我不想讨论用户是否可以杀死进程,是否应该以这种方式进行。

我只是想知道几乎每个Android播放器的手机都有一个“advanced task killer”来杀死一个进程,或者force close(在设置中)选项如何正常工作。我已经尝试了很多方法来杀死一个进程,但都没有结果。但当我看到这些'advanced task killer'时,我无法弄清楚我身边的错误。

3 个答案:

答案 0 :(得分:18)

您可以使用killBackgroundProcesses() ActivityManager 方法:

    ActivityManager am = (ActivityManager) getSystemService(Activity.ACTIVITY_SERVICE);
    am.killBackgroundProcesses(packageName);

请注意,您的应用需要拥有KILL_BACKGROUND_PROCESSES权限。因此,在 AndroidManifest.xml 中,您需要包含:

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

答案 1 :(得分:1)

尝试android.os.Process

void killMyProcess() {
    Process.killProcess(Process.myPid());
}

正如它从方法名称所暗示的那样,您只能使用此方法来终止自己的进程。

答案 2 :(得分:-1)

假设您已按照A - &gt;的顺序启动了活动。 B - &gt; C - &gt; D以A作为主要和发射器活动。

您甚至无法通过在D活动中调用Process.KillProcess(int pid)方法来终止应用程序的进程。你需要杀死每个活动D - C - B - A(以相反的顺序)来杀死这个过程。

因此,不可能杀死其他申请流程。