上一篇文章讲到LiveDate和ViewModel的使用,今天讲LiveDateBus如何使用
android开发:JetPack之ViewModel(一)
android开发:JetPack之LiveDate(一)
简介:
LiveDateBus是一款事件总线框架,它对LiveDate进行了封装。LiveDateBus能感应activity、fragment的生命周期。当activity、fragment的生命周期结束时,LiveDateBus会自动清除数据和activity、fragment进行解绑。而我们使用EventBus的时候是必须在
onDestroy()中进行反注册,不然会发生内存泄漏。而且EventBus不具备生命周期的感应能力,例如activity发生异常结束onDestroy()是不会被执行,因此当前activity还是被注册在EventBus中,EventBus还是会不断的给activity发送数据。
使用:
1.添加依赖
implementation 'com.jeremyliao:live-event-bus:1.4.2'
2.在application中调用
public class App extends Application {
@Override
public void onCreate() {
super.onCreate();
LiveEventBus.get()
.config()
.supportBroadcast(this)
.lifecycleObserverAlwaysActive(true);
}
}
3.事件订阅
observe 方式,不需要手动取消订阅,LiveEventBus自动感应生命周期:
LiveEventBus.get().with("event1",String.class).observe(this, new Observer<String>() {
@Override
public void onChanged(String s) {
textView.setText(s);
}
});
observeForever方式, 需要手动取消订阅
LiveDataBus.get()
.with("key_name", String.class)
.observeForever(observer);
LiveDataBus.get()
.with("key_name", String.class)
.removeObserver(observer);
4.发送事件
LiveEventBus.get().with("event1").post("name");