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

ループ内でiの代わりに0 (ゼロ)を使用しています。

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シェル(システムアプリ)にアクセスできる必要があることに注意してください

于 2016-10-26T15:39:51.557 に答える