0

サービスを使用してバッテリーの変更をリッスンするバッテリーウィジェットを作成しました。ただし、このため、ウィジェットを作成するときは、データを表示する前に、バッテリーの状態が変化するまで待機する必要があります。

私の質問は、バッテリーを1回限りの発生として問い合わせる簡単な方法があるかどうかです。

間違ったツリーを吠えている可能性がありますが、AppWidgetProviderクラスでBroadcastReceiverを使用してバッテリーの初期状態を取得しようとしましたが、サービスがそこからバッテリーを取得できるように、バッテリーの初期状態を停止する方法がわかりません。

何かご意見は?

乾杯

4

1 に答える 1

2

サービスを使用してバッテリーの変更をリッスンするバッテリーウィジェットを作成しました。

常にサービスを維持することは、一般的には良い考えではないことに注意してください。ユーザーはそれを気に入らず、タスクキラーまたは[設定]の[サービスの管理]画面で強制終了します。Androidもそれを気に入らず、最終的には停止します。

電池残量はあまり変化しないので、使用する機種に切り替えてAlarmManager数分おきに電池残量を確認してください。

ただし、このため、ウィジェットを作成するときは、データを表示する前に、バッテリーの状態が変化するまで待機する必要があります。

いいえ。に登録すると、スティッキーブロードキャストであるため、そのアクションの最後に送信されたブロードキャストですぐに呼び出されACTION_BATTERY_CHANGEDます。BroadcastReceiverACTION_BATTERY_CHANGED

このサンプルプロジェクトでそれを見ることができます。バッテリー情報はアクティビティにすぐに表示されます。これは、onReceive()メソッドがすぐに呼び出されるためにのみ可能です。

私の質問は、バッテリーを1回限りの発生として問い合わせる簡単な方法があるかどうかです。

それも可能です。を呼び出しますregisterReceiver()ACTION_BATTERY_CHANGED、 。を使用しnull BroadcastReceiverます。そのアクションの最後に送信されたブロードキャストが返されIntentます。これはAlarmManager、たとえば、イベントからそれを処理する方法になります。

于 2011-10-21T15:18:03.263 に答える