使用Jetpack初体验
参考# 2021年最全面的Jetpack系统学习课程,看他就够了,更新中
做了一个计时器的功能,当app退到后台时,停止计时,显示该页面时,继续计时
代码如下:
public class StepActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MyChronometer myChronometer = findViewById(R.id.chronometer);
getLifecycle().addObserver(myChronometer);
}
}
public class MyChronometer extends Chronometer implements LifecycleObserver {
long elapsedTime;
public MyChronometer(Context context, AttributeSet attrs) {
super(context, attrs);
}
@OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
private void startMeter() {
setBase(SystemClock.elapsedRealtime() - elapsedTime);
start();
}
@OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
private void stopMeter() {
elapsedTime = SystemClock.elapsedRealtime() - getBase();
stop();
}
}
使用lifecycle后有几个电话的点
之前实现该功能,需要重写onResume,onPause方法中去实现
使用lifecycle后,首先需要
getLifecycle().addObserver(***)
然后在具体的方法前添加注解
@OnLifecycleEvent(Lifecycle.Event.***)