【问题标题】:How frequently are ACTION_BATTERY_CHANGEDs sent, in real devices?在真实设备中多久发送一次 ACTION_BATTERY_CHANGED?
【发布时间】:2015-11-19 10:59:44
【问题描述】:

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

在实际设备中,电池在几天内从 100% 放电到 20%,我的 onReceive 方法是否会被调用:

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

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

【问题讨论】:

标签: android batterymanager


【解决方案1】:

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

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

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2017-09-22
      • 1970-01-01
      • 2011-06-30
      • 2016-07-08
      • 2012-11-10
      • 2013-10-18
      • 1970-01-01
      • 1970-01-01
      • 2014-10-09
      相关资源
      最近更新 更多