0

배터리 레벨을 지속적으로 모니터하는 BroadcastReciever 또는 배터리를 확인하는 Handler를 사용하여 안드로이드에서 프로그래밍 방식으로 배터리 레벨을 모니터링하는보다 효율적인 방법은 무엇입니까? 10 분마다 레벨을 실행하여 postDelayed 전화를 사용하여?Android에서 프로그래밍 방식으로 배터리 레벨 모니터링 - BroadcastReceiver 대 Handler

배터리 잔량이 특정 비율 미만으로 떨어지면 사용자에게 경고하고 싶습니다. 어느 쪽이 더 효율적입니까?

+1

둘 다 이미 비효율적 인 프로세스를 항상 실행해야합니다. Android O의 경우 사용자가 쓰고 싶은 내용이 사용자에게 실질적으로 더 강렬하게됩니다 (해당 '알림'이있는 포 그라운드 서비스). – CommonsWare

답변

0

BraodcastReceiver을 사용하려는 장치의 현재 배터리 잔량을 확인하려면 Intent.ACTION_BATTERY_CHANGED 이벤트를 수신하십시오. 이렇게하면 배터리 레벨이 실제로 변경된 경우에만 수신기가 작업을 수행합니다.

10 분마다 배터리 수준을 확인하는 처리기를 사용하는 경우 배터리 수준이 변경되지 않았거나 배터리 수준이 빠르게 변경되어 (충전 중) 일부 배터리 수준 변경을 놓친 경우를 보장하는 시나리오가 있습니다. (이는 BroadcastReceiver와 비교하여 명백한 단점 임)