我找到了许多用于监控电池电量的来源,但没有一个描述如何以固定的时间间隔进行检查。假设我想每隔n秒检查一次电池。最有效的方法是什么?
目前,我创建了一个BroadcastReceiver并使用过滤器在我的服务中注册它。然后我使用ScheduledExecutor从电池“获取”信息。如果我理解正确的是什么,我制作的BroadcastReceiver接收来自电池的所有广播而不是动态速率,而不是我要检查的恒定速率。
当我创建BroadcastReceiver时,它会收到带有当前信息的“初始”消息。每隔一段时间创建一个接收器对象,接收这条初始消息,然后每次我想检查它时都会销毁它会更有效吗?或者,有没有我想过的不同方式?
我用来监控电池的来源,以防有人感兴趣:
答案 0 :(得分:2)
假设我想每隔n秒检查一次电池。最有效的方法是什么?
除非在数百或数千秒内测量n
,否则您很可能成为电池寿命的第一消费者。鉴于你的评论,我会假设你的意思是“每n分钟”。
步骤1:设置AlarmManager
时间表,每隔IntentService
分钟调用一次n
(最好不要使用_WAKEUP
闹钟类型)。
步骤2:在IntentService
中,使用registerReceiver()
null
和BroadcastReceiver
IntentFilter
来呼叫ACTION_BATTERY_CHANGED
。返回值将是此事件的最后一次Intent
广播。
步骤3:对数据做点什么。