LifeCycle - SMAXLYB/JetpackPractice GitHub Wiki
Lifecycle
LifeCycle提供了lifecycleOwner和lifecycleObserver,即观察者模式,实现对页面生命周期的监听。
- Activity和Fragment都实现了LifecycleOwner接口,此接口只有一个getLifecycle方法,自定义组件只需实现LifecycleObserver接口,并在组件的方法上添加注解@onLifecycleEvent,当页面生命周期变化时会自动调用。在页面的oncreate方法中,调用lifecycle.addObserver (),将自定义组件传入
- 对于Service,需要添加lifecycle-extensions依赖,自定义service继承自lifecycleService,LifecycleService已经实现了LifecycleOwner接口,自定义组件只需实现LifecycleObserver接口,方法上添加注解即可,在构造函数中调用lifecycle.addObserver()方法,将自定义组件传入
- 对于application,lifecycle提供了ProcessLifecycleOwner,实现了lifecycleOwner,需要添加lifecycle-extensions依赖,自定义application,在oncreate方法中调用ProcessLifecycleOwner的静态方法get()获取实例,继续调用lifecycle.addObserver(),自定义组件只需实现LifecycleObserver接口,将自定义组件传入