5

次のコードを実行しています。

ActivityManager actvityManager = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE);
List<RunningTaskInfo> procInfos = actvityManager.getRunningTasks(1000);

次に、興味のあるプロセスを1つ強制終了します

actvityManager.killBackgroundProcesses(process.baseActivity.getPackageName());

processからのエントリはどこにありますかprocInfos

問題は、getRunningTasksもう一度実行すると、(おそらく)強制終了したプロセスが表示されますが、Androidのタスクマネージャーは、呼び出す前にそのプロセスkillBackgroundProcessesをリストし、その呼び出し後にリストから削除しました。

では、タスクマネージャーが実行中のプロセスのリストをどのように取得するかについてのアイデアはありますか?そして、ルート化されていないデバイスでサードパーティのプロセスを正常に強制終了したのは正常ですか?

4

1 に答える 1

5

「実行中」は、ユーザーがそれを開始したことを意味するものではありません。イベントをリッスンしている、スケジュールされたバックグラウンド同期を実行しているなどの可能性があります。

ActivityManager.getRunningTasks()は希望するものに近いかもしれませんが、ユーザーが現在アクティブなものを完全に制御できないため、本質的には常にこの問題が発生します。

于 2012-03-23T13:19:35.460 に答える