在真实设备中发送ACTION_BATTERY_CHANGED的频率如何?

时间:2015-11-19 10:59:44

标签: android batterymanager

在模拟器中,如果我将power capacity设置为与当前值不同的值,则会使用新值调用BroadcastReceiver的{​​{1}}。 (我已在onReceive注册。)

在真实设备中,电池在几天内放电100%到20%,我的ACTION_BATTERY_CHANGED方法会被调用:

  • 正好80次,
  • 超过80次或
  • 少于80次?

Re:可能重复的问题 - 我也担心处理程序不经常被调用。我也没有错误地在另一个广播接收器中注册广播接收器。

2 个答案:

答案 0 :(得分:2)

似乎最常见的行为是发送80条消息,但有些设备会发送更多或更少的消息。这在真实设备之间变化很大,因此必须针对您将使用的特定设备进行基准测试,或者在一般情况下进行处理。

对于我使用过的大多数设备,ACTION_BATTERY_CHANGED将在该方案中发送80次。 (插入和拔出设备时也会发送意图。)

但是,对于少数型号,每次电池温度变化时都会发送消息。这可能非常频繁地发生,具体取决于平板电脑正在进行多少处理。我是在记忆中工作,但我相信Verizon Ellipsis 7平板电脑就像这样。

此外,有些设备显然每1%电池电量变化发送的消息少于一次。 Here是更频繁邮件的示例,here是较少邮件的示例。

答案 1 :(得分:1)

Android并不保证,例如。电池放电100%至80%之间,系统不保证每次放电一次电池会发送20次事件。考虑了许多参数。您可以找到简单的解释 here

如果您想跟踪电池放电情况,请及时汇集电池。来自系统的事件数量可能因设备而异。