首先EventBus采用的观察者模式,这类似与RXJava,原理如下图
EventBus用到非常多的场景之一是替代广播,更简便地进行组件之间(Activity,Service以及Fragment等之间的信息传递).
当然他除了比广播代码量上简便,还有一点是线程的切换.啥意思?就是接收消息的方法在进行处理的时候既可以和发送消息的方法在一个线程,也可以在主线程执行,还可以在一个新的线程执行,而这些都是通过注解实现
#####先过一下基本使用方式
准备:添加一下依赖
compile 'org.greenrobot:eventbus:3.0.0'
1.先创建一个消息类
public static class MessageEvent { /* Additional fields if needed */ }
2.注册
EventBus.getDefault().register(this);
3.发送消息
EventBus.getDefault().post(new MessageEvent());
4.接收消息并处理
@Subscribe(threadMode = ThreadMode.MAIN)
public void onMessageEvent(MessageEvent event) { //do Something }
5.解除注册
EventBus.getDefault().unregister(this);
之后我们再重点过一下处理方法.