Lifecycle,它可以用来检查 Activity 的生命周期,而不必强依赖 Activity。
使用:
private LifecycleRegistry mLifecycleRegistry; mLifecycleRegistry = new LifecycleRegistry(this); mLifecycleRegistry.markState(Lifecycle.State.CREATED); mLifecycleRegistry.handleLifecycleEvent(Lifecycle.Event.ON_CREATE);
getLifecycle().addObserver(new DefaultLifecycleObserver() { @Override public void onCreate(@NonNull LifecycleOwner owner) { } @Override public void onStart(@NonNull LifecycleOwner owner) { } @Override public void onResume(@NonNull LifecycleOwner owner) { } @Override public void onPause(@NonNull LifecycleOwner owner) { } @Override public void onDestroy(@NonNull LifecycleOwner owner) { } });
- lifycycle 其实是用观察者模式实现的,当 Activity 生命周期变化的时候,通知相应的 Observers 即观察者。
- 使用 lifecycle,我们可以将释放资源的动作内聚在自身,减少与调用者之间的耦合。