引言
Lifecycle 组件包括
- LifecycleOwner
- LifecycleObserver
Lifecycle 组件是执行操作以响应另一个组件(Activity或者Fragment)的生命周期状态的更改。
一、在Activity或者Fragment中的使用
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main2)
lifecycle.addObserver(BluetoothDialog())
}
}
AppCompatActivity本身继承了LifecycleOwner接口,当owner生命周期变化时,观察者会执行相同生命周期变化的方法
二、自定义使用
1、定义观察者,继承 LifecycleObserver
class BluetoothDialog : LifecycleObserver { @OnLifecycleEvent(Lifecycle.Event.ON_START) fun start(){ println("start") } }
2、定义被观察者,继承 LifecycleOwner ,即生命周期拥有者(事件发起者)
class BluetoothView(context: Context) : Dialog(context) ,LifecycleOwner { /** * 1 创建生命周期拥有者 */ private var lifecycleRegistry = LifecycleRegistry(this) override fun getLifecycle(): Lifecycle { return lifecycleRegistry } /** * 2 添加观察者 */ fun registerObserver(){ getLifecycle().addObserver(BluetoothDialog()) } /** * 3 分发事件 ,观察者会执行相同注解的方法 */ fun startLife(){ lifecycleRegistry.handleLifecycleEvent(Lifecycle.Event.ON_START) } }
标签:生命周期,LifecycleOwner,基础,观察者,lifecycleRegistry,fun,Lifecycle From: https://www.cnblogs.com/suiyilaile/p/16851674.html