2017-01-22 34 views
0

我有一个活动,我想要监视电池寿命。我想将电池寿命分解成它自己的类。我可以做的活动Android自定义类 - 挂钩到活动生命周期

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

我宁愿只是这样做如下:

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

有什么办法,我可以得到BatteryChecker向附加活动的onPause /的onResume应对?

+0

是的 - 你的第一个例子。没有全局的onPause/onResume框架。这是一件好事,因为很难让它适用于多种活动和服务。 –

+0

但是没有办法'钩入'这些回调? – easycheese

+0

没有。你可以用事件总线或可观察的或类似的东西来构建一个。但建立起来会很痛苦,而处理多项活动可能会有挑战性。 –

回答

0

你需要一个类继承的BroadcastReceiver

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

BatteryChecker可以实现ActivityLifecycleCallbacks并调用registerActivityLifecycleCallbacksonCreate当您创建Application类,在这种情况下,您的自定义类将接收所有的活动生命周期回调。

查看更多这里 - ActivityLifecycleCallbacks

+0

是的,我认为ActivityLifecycleCallbacks是我需要的,但是在Application类中调用registerActivityLifecycleCallbacks并没有帮助。我没有办法为BatteryChecker类注册它。 – easycheese