【问题标题】:Monitoring Battery Level programmatically in Android - BroadcastReceiver vs Handler在 Android 中以编程方式监控电池电量 - BroadcastReceiver vs Handler
【发布时间】:2017-05-16 18:11:23
【问题描述】:

我想知道,在 Android 中以编程方式监控电池电量的更有效方法是什么 - 使用连续监控电池电量的 BroadcastReciever,或使用 postDelayed 调用每 10 分钟检查一次电池电量的 Handler使用 Runnable?

我想在电池电量低于特定百分比时向用户发出警告。哪种方式效率更高?

【问题讨论】:

  • 两者都要求你有一个进程一直在运行,这已经是低效的了。这就是为什么,在 Android O 中,您想要编写的内容对用户来说变得更具侵入性(具有相应 Notification 的前台服务)。

标签: android broadcastreceiver battery batterylevel batterymanager


【解决方案1】:

要检查您要使用的设备的当前电池电量,请使用 BraodcastReceiver 侦听 Intent.ACTION_BATTERY_CHANGED 事件。这样,您的接收器仅在电池电量真正发生变化的情况下才执行工作。

如果使用每 10 分钟检查一次电池电量的处理程序,则可以保证在电池电量没有变化或电池电量变化如此之快(充电时)的情况下,您会错过一些电池电量的变化。 (与 BroadcastReceiver 相比,这是一个明显的劣势)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-19
    • 2016-05-01
    • 1970-01-01
    相关资源
    最近更新 更多