2011-04-10 2 views
0

배터리 정보가 변경 될 때마다 위젯 사진을 업데이트하는 간단한 배터리 위젯을 개발하고 싶습니다 (AC 플러그, 배터리 레벨 변경). 배터리 상태를 어떻게 추적해야합니까? 나는 AlarmManager를 사용하는 것을 고려한다, 그러나 위젯은 주기적으로 (예를 들어, 5 분) 업데이트 될 것이다. 나는 어떤 이벤트가 일어난 직후에 업데이트를 어떻게 할 수 있는가?간단한 배터리 위젯

+0

원래 전략을 고수하십시오. 이 솔루션을 사용하려면'ACTION_BATTERY_CHANGED'에 대한'BroadcastReceiver' 워킹으로 항상'Service'를 실행해야합니다. 이것은 사용자에게 적대적인 행위입니다. 이와 같은 앱이 "작업 킬러"가 발명 된 이유입니다. – CommonsWare

+0

일정 시간이 지나면 서비스가 작동하지 않습니다. 나는 여하튼 안드로이드 시스템이 그걸 불가능하게하고 그것이 가지고있는 자원을 해제한다고 믿는다. 나는 이것을 피하기 위해 startForeground를 시도했지만 알림 메시지는 매우 성가시다. –

+0

김 Kazyua : "내 서비스는 일정 기간 후에 작동하지 않을 것입니다."- 그래서 당신은 영원한 서비스를 만들지 말고, 당신은 'AlarmManager'를 사용하는 것이 좋습니다. – CommonsWare

답변

0

브로드 캐스트 리시버가 필요합니다.

는 이미 여기에 대답 자렛를 인용 Android Battery in SDK

: http://developer.android.com/reference/android/content/Intent.html#ACTION_BATTERY_CHANGED :

당신은 ACTION_BATTERY_CHANGED에 대한 방송을 수신하기위한 의도 수신기를 등록 할 수 있습니다. 워드 프로세서는 끈적 거리기 때문에 배터리 상태가 변경된 후에도 잡을 수 있습니다.

+0

하지만 시간이 지나면 어떻게 서비스가 삭제 될 수 있습니까? –

+0

서비스를 시작한 경우 STICKY 시스템에서 리소스가 부족한 경우에만 중지됩니다. 심지어 onLowMemory()에서 다시 시작하라는 경보를 설정할 수 있습니다. – Blundell

+0

sdk는 onLowMemory가 서비스를 다시 시작하는 대신 서비스가 차지하는 메모리를 해제하기위한 것이라고 설명했습니다. 내 서비스가 항상 제대로 작동하는지 다른 방법으로 확인할 수 있습니까? 시장에서 배터리 위젯을 볼 수 있습니다. 항상 배터리 상태를 모니터링하는 서비스를 가지고 있습니다. –