我只是从android开发开始,并编写了一个应用程序来显示有关电池状态的详细信息。
现在我想把所有的事情都放进一个小部件里,问题是:
我真的需要后台的更新服务来监听行动电池改变的意图吗?我的第一个想法是
在androidmanifest.xml中插入小部件的intet filter标记-但显然不是那么简单。
如果UpdateService是正确的方法,我会这样做-但我只是想确定正确的解决方案是什么
最佳答案
我真的需要更新服务吗
要收听的背景
动作电池改变了意图?
您不能使用为BroadcastReceiver
注册的清单。它只能由活动或服务通过ACTION_BATTERY_CHANGED
注册。
如果由于其他原因内存中没有服务,则更好的方法是轮询。设置registerReceiver()
以每隔一段时间检查一次电池电量(请配置!)。要检查电池电量,请调用AlarmManager
以获取不带registerReceiver()
的ACTION_BATTERY_CHANGED
IntentFilter
(第一个参数为BroadcastReceiver
)。这将返回最后一次广播null
ACTION_BATTERY_CHANGED
,您可以从中获取最新的充电水平。