2011-07-01 20 views
0

ActivityManagerを使用して、パッケージが実行/実行されているときをプログラムで監視し、プログラムでそれを終了させる最も効率的な方法を見つけようとしています。私は要求でそれを行うことができますmanager.killBackgroundProcesses(processName)と2.2を使用して、私のコードがうまく動作しますが、私は可能な場合は、バックグラウンドサービスのモニターを登録したいと思います..または特定のパッケージ名のための意図的な起動モニタ?バックグラウンドサービスからアクティビティを監視して強制終了するベストプラクティス?

これを行うには、最も効率的で信頼できる方法はありますか?

注:これはバックグラウンドで悪意のある殺人のためのものではありません...私はを私の目録に呼び出していますので、ユーザーはアプリケーションの内容を正確に知ることができます。

答えて

0

AlarmManagerを使用してポーリングをスケジュールすることをお勧めします。欠点は、AlarmManagerがあらかじめ設定された数の間隔でのみポーリングすることです。最小間隔は15分です。大部分の状況では、これで十分だと思います。

+0

私はそれを比較的瞬間的にする必要があります。数秒以内にする必要があります。私は常にポーリングが非常に効率的になるとは思わない。 – kefs

+0

さて、ポーリングするか、パッケージの起動を通知する方法を見つけてください。 なぜこのような速報をポーリングする必要がありますか?あなたが不必要な膨らみが始まらないようにするためにアプリケーションを構築しているのであれば、これは直感的ではありません。あなたがそれを殺すとすぐに、Androidシステムは再びそれを再起動します。そうであれば、プログラムを終了しようとするのではなく、プログラムが起動しないようにする必要があります。 –

0

私は、Androidには、このような概念はありません

可能な場合は、バックグラウンドサービスのモニターを登録したいと思います。

特定のパッケージ名の意図的な起動モニタですか?

Androidにこのような概念はありません。

私は比較的瞬間的に、または数秒以内にする必要があります。私は常にポーリングが非常に効率的になるとは思わない。

次に、単純に効率の悪い状態で暮らすか、アプリを書かないでください。 Androidは、作成しようとしているアプリをサポートするように設定されていません。

関連する問題