EventBus消息机制在Eclipse环境下的使用

1、在onStart()方法中注册

@Override
public void onStart() {
super.onStart();
// 注册 EventBus
// 判断 Eventbus 是否注册
if (!EventBus.getDefault().isRegistered(this)) {
EventBus.getDefault().register(this);
}
}

2、在onStop()方法中销毁

@Override
public void onStop() {
super.onStop();
// 注销操作
if (EventBus.getDefault().isRegistered(this)) {
EventBus.getDefault().unregister(this);
}
}

3、发送消息

EventBus.getDefault().post(new EventBusMsgInfo(position));

4、自定义方法 接受发送的数据

@Subscribe(threadMode = ThreadMode.MAIN)
public void getEventBusMsg(EventBusMsgInfo busMsgInfo){
// 调用切换界面的方法,实现切换界面
//该方法可直接将传递过来的数据进行操作
switchPager(busMsgInfo.position);
}
定义发送消息传递的bean类
public class EventBusMsgInfo { public int position; public EventBusMsgInfo(int position) {
super();
this.position = position;
} }

5、重点提示

  5.1、添加注解在此处有三种模式
            模式一:POSTING:默认的模式,发送和接受操作都在一个线程中执行
            模式二:MAIN:不管在那个线程发送消息,都在UI线程接收
            模式三:BACKGROUND:如果在子线程发送消息,那么接收也必须在子线程,如果在主线程发送消息,那么接收也必须在主线程。
            模式四:ASYNC:接收和发送都在子线程中执行
     5.2、EventBus发送消息 发送的对象应该是一个bean类本例中

上一篇:使用SetupDI* API列举系统中的设备


下一篇:java 子接口中定义与父接口相同的方法