Мониторинг уровня заряда батареи программно в Android - BroadcastReceiver vs Handler
Мне было интересно, что было бы более эффективным способом программного контроля уровня заряда батареи в Android - используя BroadcastReciever, который непрерывно контролирует уровень заряда батареи, или обработчик, который проверяет уровень заряда батареи каждые 10 минут, используя postDelayed
звонки с использованием Runnable?
Я хотел бы предупредить пользователя, когда уровень заряда батареи падает ниже определенного процента. Какой способ будет более эффективным?
1 ответ
Для проверки текущего уровня заряда батареи устройства, которое вы хотите использовать BraodcastReceiver
который слушает Intent.ACTION_BATTERY_CHANGED
События. Таким образом, ваш приемник выполняет работу только в том случае, если уровень заряда батареи действительно изменился.
В случае использования Обработчика, который проверяет уровень заряда батареи каждые 10 минут, существуют гарантированные сценарии, в которых уровень заряда батареи не изменился или когда уровень заряда батареи изменился так быстро (во время зарядки), что вы пропускаете некоторые изменения уровня заряда батареи. (что является явным недостатком по сравнению с BroadcastReceiver)