EventBus简介
EventBus是一个Android事件发布/订阅轻量级框架,EventBus可以代替Android传统的Intent,Handler,Broadcast或接口函数,在Fragment,Activity,Service线程之间传递数据,使用方便,代码简洁。在实际开发中可以解决一些比较复杂的信息传递。使用简单
1.EventBus的组成
1.需要传递的数据对象event,可以是任意的类型,一般我生成一个bean用来保存。
2.Subscriber: 事件的订阅者
3.publisher: 事件的发布者
2.使用方法
集成
implementation 'org.greenrobot:eventbus:3.0.0'
注册
在发布事件之前需要先注册。
EventBus.getDefault().register(this);
调用
EventBus.getDefault().post(Object)
这里的Object就是之前提到的bean,我们自己定义里面的字段即可。
接收消息
@Subscribe()
public void onEvent(Object o) {
//这里的object就是得到的数据。
}
结束
页面销毁的时候,我们要释放eventbus
@Override
protected void onDestroy() {
super.onDestroy();
EventBus.getDefault().unregister(this);
}
3.事件的优先级
这里的优先级指的是接受者的优先级
@Subscribe(priority =1)
public void onEvent(Object o) {
//这里的object就是得到的数据。
}
priority 默认为0,值越大优先级越高
可以使用优先级的不同实现消息的不同处理方法。