Github地址:https://github.com/greenrobot/EventBus
1.修改项目(app)的build.gradle
implementation 'org.greenrobot:eventbus:3.1.1'
2.定义事件类
public class EventBusCarrier {
private String eventType; //区分事件的类型
private Object object; //事件的实体类
public EventBusCarrier() {
}
public EventBusCarrier(String eventType) {
this.eventType = eventType;
}
public EventBusCarrier(String eventType, Object object) {
this.eventType = eventType;
this.object = object;
}
public String getEventType() {
return eventType;
}
public void setEventType(String eventType) {
this.eventType = eventType;
}
public Object getObject() {
return object;
}
public void setObject(Object object) {
this.object = object;
}
}
3.EventBus注册和解除注册
EentBus.getDefault().register(this); //事件的注册
EventBus.getDefault().unregister(this); //解除注册
4.事件处理
@Subscribe(threadMode = ThreadMode.BACKGROUND)
public void handleEvent(EventBusCarrier eventBusCarrier) {
switch (eventBusCarrier.getEventType()) {
...
}
}
ThreadMode有5种
ThreadMode.POSTING
ThreadMode.MAIN
ThreadMode.MAIN_ORDERED
ThreadMode.BACKGROUND
ThreadMode.ASYNC
5.发布事件
EventBus.getDefault().post(new EventBusCarrier(EventType.TEST_RANDOM_DATA));
6.注
EventBus 注册完之后必须要有事件处理方法。