- 依赖
implementation 'org.greenrobot:eventbus:3.1.1'
一、使用的注册与解注册
- 在Activity的onCreate()方法里去注册EventBus,在onDestory()方法里解除注册
- 注册
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//注册
EventBus.getDefault().register(this);
}
- 解注册
@Override
protected void onDestroy() {
super.onDestroy();
EventBus.getDefault().unregister(this);
}
二、事件
发送事件
EventBus.getDefault().post("事件");
处理事件
//权限修饰符必须为public
@Subscribe(threadMode = ThreadMode.MAIN)
public void getData(PersonBean personBean) {
...
}
三、粘性事件
发送事件
EventBus.getDefault().postSticky("粘性事件");
处理事件
//权限修饰符必须为public
@Subscribe(threadMode = ThreadMode.MAIN, sticky = true)
public void getMainData(String msg) {
...
}
EventBus好处:"解耦"
EventBus能够简化各组件间的通信,让我们的代码书写变得简单,能有效的分离事件发送方和接收方(也就是解耦的意思),能避免复杂和容易出错的依赖性和生命周期问题。
网友评论