3

エミュレーターでpower capacity、現在の値とは異なる値を設定すると、新しい値で my が呼び出されますBroadcastReceiveronReceive(私は に登録しましたACTION_BATTERY_CHANGED。)

バッテリーが数日間で 100 から 20% 放電している実際のデバイスでは、私のonReceiveメソッドは次のように呼び出されます。

  • ちょうど80回、
  • 80回以上
  • 80回未満?

Re:重複する可能性のある質問 - ハンドラーが頻繁に呼び出されないことも心配です。また、別のブロードキャスト レシーバー内からブロードキャスト レシーバーを登録するという間違いも犯していません。

4

2 に答える 2

2

最も一般的な動作はちょうど 80 個のメッセージを送信することのようですが、一部のデバイスはそれより多いまたは少ないメッセージを送信します。これは実際のデバイスによって大きく異なるため、使用する特定のデバイスのベンチマークを行うか、一般的なケースで処理する必要があります。

私が使用したほとんどのデバイスではACTION_BATTERY_CHANGED、そのシナリオで正確に 80 回送信されます。(インテントは、デバイスのプラグが差し込まれたり取り外されたりしたときにも送信されます。)

ただし、一部のモデルでは、バッテリー温度が変化するたびにメッセージが送信されます。これは、特にタブレットの処理量に応じて、非常に頻繁に発生する可能性があります。私は記憶から作業していますが、Verizon Ellipsis 7 タブレットはこのように動作すると思います。

また、一部のデバイスでは、バッテリー レベルが 1% 変化するごとにメッセージを送信する回数が 1 回に満たないようです。これは、より頻繁なメッセージの例であり、これはより少ないメッセージの例です。

于 2015-11-19T11:07:24.440 に答える
1

Android はそれを保証しません。100% から 80% のバッテリー放電の間、システムは、バッテリーの 1% の放電ごとに 20 個のイベントを 1 回送信することを保証しません。多くのパラメータが考慮されます。ここで簡単な説明を見つけることができます

バッテリーの放電を追跡したい場合は、適時にプーリングを行ってください。システムからのイベントの数は、デバイスによって異なる場合があります。

于 2015-11-19T11:52:24.737 に答える