0

バッテリーレベルを継続的に監視するBroadcastRecieverまたはバッテリーをチェックするハンドラーを使用して、バッテリーレベルをプログラムでAndroidで監視する方が効率的な方法は何でしょうかRunnableを使用してpostDelayedコールを使用して10分ごとにレベルを上げますか?Androidでプログラム的にバッテリーレベルを監視する - BroadcastReceiver v Handler

バッテリレベルが特定のパーセントを下回ると、ユーザーに警告したいと思います。どちらの方が効率的でしょうか?

+1

どちらの場合も、常に効率的なプロセスを実行する必要があります。これは、Android Oのように、あなたが書くことが、ユーザー(実質的には、対応する 'Notification 'を持つフォアグラウンドサービス)にかなり侵入するようになっている理由です。 – CommonsWare

答えて

0

BraodcastReceiverのデバイスの現在のバッテリー残量を確認するには、Intent.ACTION_BATTERY_CHANGEDイベントを待ち受けます。この方法では、バッテリーレベルが実際に変更された場合にのみレシーバーが作業を実行します。

バッテリレベルを10分ごとにチェックするハンドラを使用する場合、バッテリレベルが変更されていない、またはバッテリレベルがバッテリレベルの変化を逃したような速い(充電中)変更されたシナリオが保証されます。 (これはBroadcastReceiverと比較して明らかに不利な点です)

関連する問題