JetPack(三)LifeCycles
LifeCycles
生命周期感知组件执行响应另一个组件生命周期状态变化的操作,例如活动和片段。这些组件可以帮助您生成更易于维护的组织良好的、轻量级的代码。
用法很简单
只需要实现LifecycleObserver,下面以一个计时器为例,当活动暂停的时候计时器暂停,当活动恢复的时候计时器恢复
public class MyChronometer extends Chronometer implements LifecycleObserver {
private long realTime;
public MyChronometer(Context context, AttributeSet attrs) {
super(context, attrs);
}
//暂停
@OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
private void pauseMeter(){
realTime = SystemClock.elapsedRealtime() - getBase();
stop();
}
//恢复
@OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
private void startMeter(){
setBase(SystemClock.elapsedRealtime()-realTime);
start();
}
}
在activity中添加观察者
mChronometer = findViewById(R.id.chronometer);
getLifecycle().addObserver(mChronometer);