8

我想杀死像任务杀手一样在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 次。并且没有任务被杀死......

有人可以帮我吗?谢谢!

4

5 回答 5

10

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

于 2011-02-07T13:17:47.337 回答
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);
    }

}

干杯

于 2011-02-07T12:34:29.407 回答
2

您可以使用以下代码在后按时终止当前进程:

public void onBackPressed() {
    super.onBackPressed();
    int pid = android.os.Process.myPid();
    android.os.Process.killProcess(pid);
于 2011-09-26T05:22:15.723 回答
1

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

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

这适用于 2.2 及更高版本。

于 2013-08-20T02:23:06.677 回答
0

1-添加到清单

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

2 - 在您的代码中

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

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

于 2016-10-26T15:39:51.557 回答