什么对 battery_changed 更好?广播接收器,或服务,或 intentService?

What is better for battery_changed? broadcast receivers, or service, or intentService?

如果 phone 正在充电,我希望我的应用知道电池百分比变化。

所以我用BroadcastReceiverACTION_POWER_CONNECTEDACTION_POWER_DISCONNECTED在phone充电时注册另一个BroadcastReceiverACTION_BATTERY_CHANGED,并且然后我想 "wouldn't it be better if I used Service?"

然后我搜索了一下Service,看到了IntentService,所以现在想知道ACTION_POWER_CONNECTEDACTION_POWER_DISCONNECTED哪个更好,[=13=哪个更好] =15=]?

我想 ACTION_POWER_CONNECTEDACTION_POWER_DISCONNECTED 应该用 BroadcastReceiverACTION_BATTERY_CHANGED 应该用 IntentService,我错了吗?

我希望 ACTION_POWER_CONNECTEDACTION_POWER_DISCONNECTED 永远 运行 (除非我找到更好的方法),而 运行 ACTION_BATTERY_CHANGED 当phone 正在充电。

BroadcastReceivers 和服务是两个不同的东西

广播接收器旨在监听某些事件并对其执行操作,而服务则用于在后台执行某些任务(没有 activity),例如在后台服务中播放音乐

意图服务是在服务之上设计的,用于在单独的线程上执行的长 运行 任务

在您的场景中,最好的答案是使用广播接收器。每次都会调用它,与服务

不同,在您执行完任务后无需关闭它