Что лучше для battery_changed?широковещательные приемники, или сервис, или intentService? - PullRequest
0 голосов
/ 23 мая 2018

Я хочу, чтобы мое приложение узнало об изменении процента заряда батареи, если телефон заряжается.

Итак, я использовал BroadcastReceiver с ACTION_POWER_CONNECTED и ACTION_POWER_DISCONNECTED, чтобы зарегистрировать другое BroadcastReceiver с ACTION_BATTERY_CHANGED, когда телефон заряжается, и тогда я подумал: "Не было бы лучше, если бы я использовалService? "

Тогда я искал около Service и увидел IntentService, поэтому теперь мне интересно, что лучше для ACTION_POWER_CONNECTED и ACTION_POWER_DISCONNECTED, а что лучше для ACTION_BATTERY_CHANGED?

Я думаю, я должен использовать BroadcastReceiver для ACTION_POWER_CONNECTED и ACTION_POWER_DISCONNECTED и IntentService для ACTION_BATTERY_CHANGED, я не прав?

Я хочу ACTION_POWER_CONNECTED и ACTION_POWER_DISCONNECTED запускать всегда и всегда (кроме случаев, когда я нашел лучший способ) и запускать ACTION_BATTERY_CHANGED, когда телефон заряжается.

1 Ответ

0 голосов
/ 23 мая 2018

BroadcastReceivers и сервис - это две разные вещи

Широковещательные приемники предназначены для прослушивания некоторых событий и выполнения над ними действий, в то время как сервисы используются для выполнения некоторой задачи в фоновом режиме (без активности), например, воспроизведения музыки в фоновом сервисе.

Служба Intent разработана поверх службы для долгосрочных задач, которые должны выполняться в отдельном потоке

В вашем сценарии лучшим ответом будет использование широковещательного приемника.Он будет вызываться каждый раз, и нет необходимости выключать его после выполнения задачи, в отличие от служб

...