4

我找到了许多用于监控电池电量的来源,但没有一个描述如何以固定的时间间隔检查它。假设我想每 n 秒检查一次电池。最有效的方法是什么?

目前,我创建了一个 BroadcastReceiver 并使用过滤器将其注册到我的服务中。然后我使用 ScheduledExecutor 从电池中“获取”信息。如果我正确理解发生了什么,我制作的 BroadcastReceiver 会从电池接收所有广播,而不是在它们进入时以动态速率接收所有广播,而不是我想要检查的恒定速率。

看来,当我创建广播接收器时,它会收到一条带有当前信息的“初始”消息。每隔一段时间创建一个接收器对象,接收这个初始消息,然后每次我想检查它时销毁它会更有效吗?或者,有没有我没有想过的不同方式?

如果有人感兴趣,我用于监控电池的来源:

4

1 回答 1

2

假设我想每 n 秒检查一次电池。最有效的方法是什么?

除非n以数百或数千秒为单位进行测量,否则您很可能是电池寿命的第一消费者。鉴于您的评论,我会假设您的意思是“每 n 分钟”。

第 1 步:设置AlarmManager时间表以调用IntentServicen分钟一次(最好不要使用_WAKEUP警报类型)。

第 2 步:在 中,用 a和 anIntentService调用。返回值将是此事件的最后一次广播。registerReceiver()null BroadcastReceiverIntentFilterACTION_BATTERY_CHANGEDIntent

步骤#3:对数据做一些事情。

于 2012-06-25T23:31:30.803 回答