4

バッテリ レベルを監視するための情報源は数多くありますが、一定の時間間隔でチェックする方法について説明している情報源はありません。n秒ごとにバッテリーをチェックしたいとします。これを行う最も効率的な方法は何ですか?

現在、BroadcastReceiver を作成し、フィルターを使用してサービスに登録しています。次に、ScheduledExecutor を使用してバッテリーから情報を「フェッチ」します。何が起こっているのかを正しく理解していれば、私が作成した BroadcastReceiver は、チェックしたい一定のレートではなく、入ってくると動的なレートですべてのブロードキャストをバッテリーから受信します。

BroadcastReceiver を作成すると、現在の情報を含む「初期」メッセージを受信するようです。受信側オブジェクトを頻繁に作成し、この最初のメッセージを受信して​​から、チェックするたびに破棄する方が効率的でしょうか? または、私が考えていなかった別の方法はありますか?

誰かが興味を持っている場合に備えて、バッテリーの監視に使用したソース:

4

1 に答える 1

2

n秒ごとにバッテリーをチェックしたいとします。これを行う最も効率的な方法は何ですか?

n数百秒または数千秒で測定されない限り、バッテリ寿命の第 1 位の消費者になる可能性があります。あなたのコメントを考えると、あなたが本当に「n分ごと」を意味していると思います。

ステップ #1: 1 分ごとAlarmManagerに呼び出すようにスケジュールを設定します(できれば、アラーム タイプを使用しないでください)。IntentServicen_WAKEUP

ステップ #2: その中で、と のをIntentService呼び出します。戻り値は、このイベントの最後のブロードキャストになります。registerReceiver()null BroadcastReceiverIntentFilterACTION_BATTERY_CHANGEDIntent

ステップ #3: データを使って何かをする。

于 2012-06-25T23:31:30.803 に答える