3

在模拟器中,如果 I 设置power capacity为与当前值不同的值,BroadcastReceiveronReceive使用新值调用 my 。(我已经注册了ACTION_BATTERY_CHANGED。)

在一个真实的设备中,它的电池在几天内从 100% 放电到 20%,我的onReceive方法将被称为:

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

回复:可能重复的问题 - 我也担心处理程序没有被足够频繁地调用。我也没有犯过从另一个广播接收器中注册广播接收器的错误。

4

2 回答 2

2

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

对于我使用过的大多数设备,ACTION_BATTERY_CHANGED在这种情况下将准确发送 80 次。(插入和拔出设备时也会发送意图。)

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

此外,某些设备显然在电池电量每变化 1% 时发送的消息少于一次。是一个更频繁消息的示例,是一个更少消息的示例。

于 2015-11-19T11:07:24.440 回答
1

Android 不保证这一点,例如。在电池从 100% 放电到 80% 之间,系统不保证每放电 1% 就会发送 20 个事件。许多参数都被考虑在内。你可以在这里找到简单的解释

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

于 2015-11-19T11:52:24.737 回答