2017-01-22 1 views
0

배터리 수명을 모니터링하고 싶은 활동이 있습니다. 배터리 수명을 자체 클래스와 분리하려고합니다.Android 맞춤 클래스 - 활동주기로 연결

onCreate() { 
    bg = new BatteryChecker(this); 
} 

내가 BatteryChecker 첨부 활동의 onPause/onResume에 응답 얻을 수있는 방법이 있나요 : 나는 활동

onPause() { 
    batteryChecker = new BatteryChecker(); 
} 
onResume() { 
    batteryChecker.kill(); 
} 

난 그냥 이렇게하는 것을 선호에 다음과 같은 작업을 수행 할 수 있습니까? 당신은 클래스가 필요

+0

네 - 첫 번째 예. 글로벌 onPause/onResume 프레임 워크가 없습니다. 이는 여러 활동 및 서비스에서 작동하게하기가 어려울 수 있기 때문에 좋은 것입니다. –

+0

그러나 콜백에 '연결'할 방법이 없습니다. – easycheese

+0

아니요. 이벤트 버스 또는 관측 가능하거나 그와 유사한 것을 사용하여 하나를 만들 수 있습니다. 그러나 설정하는 것이 어려울 것이며, 여러 활동을 다루는 것은 어려울 수 있습니다. –

답변

0

는 브로드 캐스트 리시버

public class PowerConnectionReceiver extends BroadcastReceiver { 
     @Override 
     public void onReceive(Context context, Intent intent) { 
      int status = intent.getIntExtra(BatteryManager.EXTRA_STATUS, -1); 
      boolean isCharging = status == BatteryManager.BATTERY_STATUS_CHARGING || 
           status == BatteryManager.BATTERY_STATUS_FULL; 

      int chargePlug = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1); 
      boolean usbCharge = chargePlug == BATTERY_PLUGGED_USB; 
      boolean acCharge = chargePlug == BATTERY_PLUGGED_AC; 
     } 
    } 

더 많은 정보를 확장합니다. Monitoring Battery State

+2

BroadcastReceiver를 사용하여 배터리를 모니터링하고 있습니다. 감사합니다. 문제는 활동 라이프 사이클 후크에 관한 것입니다. – easycheese

2

귀하의 BatteryCheckerActivityLifecycleCallbacks을 구현하고 사용자 정의 클래스는 모든 활동의 라이프 사이클 콜백을 받게됩니다이 경우에, 당신의 Application 클래스를 만들 때 onCreateregisterActivityLifecycleCallbacks를 호출 할 수 있습니다.

여기에서 자세한 내용을 참조 - ActivityLifecycleCallbacks

+0

예, ActivityLifecycleCallbacks가 필요하다고 생각했지만 Application 클래스에서 registerActivityLifecycleCallbacks를 호출하면 도움이되지 않습니다. BatteryChecker 클래스에 등록 할 방법이 없습니다. – easycheese