2012-03-23 19 views
5
私は次のコードを実行してい

殺害:次に実行中のプロセスのリストを取得し、特定のプロセス

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

を、私はと

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

に興味を持って一つのプロセスだ殺しますprocessprocInfosのエントリです。

getRunningTasksをもう一度実行すると問題が発生します。AndroidのタスクマネージャーがkillBackgroundProcessesを呼び出す前にプロセスを表示していて、呼び出し後にそのプロセスを削除している間は、プロセスはおそらく殺されています。

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

+1

これは新しい質問として、あなたがもともと尋ねたものとはかなり異なっているので、これは良いでしょう。いずれにしても、あなたの現在の質問に対する答えのほとんどは、ここで見つけることができます:http://stackoverflow.com/questions/8814696/how-to-kill-currently-running-task-in-android、特に2番目の答え。 –

+0

@RobPridham:ありがとう、私はその質問を見ませんでした。そして、私の言い直した質問は、元々のものとはまったく違っていないようです... –

答えて

5

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

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

+0

意味がありますが、私はデバイスを再起動してギャラリーを起動しなかったためにギャラリーが「実行中」として表示される理由はまだ分かりませんまったく。 –

+0

いくつかの理由が考えられます.1つの例として、アプリケーションはシステムのブートイベントに登録することができ、それを受信すると起動され、システムが終了するまで実行されるとカウントされます。 –

+0

ありがとうございました。 'getRunningTasks()'は本当に必要なことをするようです。最後の質問: 'getRunningTasks'によって返されたタスク(' ActivityManager.RunningTaskInfo')に対応するプロセス名を取得する方法を偶然に知っていますか? –

関連する問題