一.基本使用:
1.自定义一个事件类:
public class FirstEvent{
//构造方法
public FirstEvent(){}
}
2.发送相关的Event事件:
EventBus.getDefault().post(new FirstEvent());
3.接收界面进行EventBus的注册:
EventBus.getDefault().register(this);
4.在接收界面进行Event事件的订阅:
@Subscribe(threadMode = ThreadMode.MAIN)
public void onEvent(FirstEvent event) {
//进行相关的逻辑响应
}
5.在接收界面进行EventBus的解注册:
EventBus.getDefault().unregister(this);
二.订阅函数的类别:
(1)ThreadMode.MAIN:表示无论事件是在哪个线程发布出来的,该事件订阅方法onEvent都会在UI线程中执行(总在UI线程中执行)。
(2)ThreadMode.POSTING:表示事件在哪个线程中发布出来的,事件订阅函数onEvent就会在这个线程中运行,也就是说发布事件和接收事件在同一个线程(总在同一个线程中执行)。
(3)ThreadMode.BACKGROUND:表示如果事件在UI线程中发布出来的,那么订阅函数onEvent就会在子线程中运行,如果事件本来就是在子线程中发布出来的,那么订阅函数直接在该子线程中执行(总在子线程中执行)。
(4)ThreadMode.AYSNC:使用这个模式的订阅函数,那么无论事件在哪个线程发布,都会创建新的子线程来执行订阅函数(总在新的子线程中执行)。