android任务杀死

时间:2011-02-07 12:25:52

标签: android task kill taskkill

我想杀死在android中运行的所有任务,比如任务杀手...... 我到现在所做的是:

ActivityManager manager =  (ActivityManager) this.getSystemService(ACTIVITY_SERVICE);
    List<RunningAppProcessInfo> activityes = ((ActivityManager) manager).getRunningAppProcesses();

    for (int i = 0; i < activityes.size(); i++){

        Log.e("APP: "+i, activityes.get(0).processName);

        if (!activityes.get(0).processName.equals("app.android.myapp")){
            Process.killProcess(activityes.get(0).pid);
        }

    }

代码的问题是它只在我的应用程序的活动列表中返回了12次。 没有任务被杀......

是的,有人能帮帮我吗? 谢谢!

5 个答案:

答案 0 :(得分:10)

您无权杀死其他进程;因此,killProcess()不适用于您的应用。

答案 1 :(得分:4)

你在循环中使用 0 (零)代替 i

for (int i = 0; i < activityes.size(); i++){

    Log.e("APP: "+i, activityes.get(i).processName);

    if (!activityes.get(i).processName.equals("app.android.myapp")){
        Process.killProcess(activityes.get(i).pid);
    }

}

干杯

答案 2 :(得分:2)

您可以使用以下代码终止当前进程:

public void onBackPressed() {
    super.onBackPressed();
    int pid = android.os.Process.myPid();
    android.os.Process.killProcess(pid);

答案 3 :(得分:1)

你可以尝试这个来杀死你的任务或应用程序:

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

这适用于2.2及以上。

答案 4 :(得分:0)

1-添加到清单

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

2 - 在您的代码中

Runtime.getRuntime().exec("adb shell killall com.example.app");

请注意,您的应用需要访问adb shell(系统应用)