使用EventBus进行Fragment和Activity通信
本文介绍EventBus的基本使用,以及用于Fragment和Activity之间通信。
github地址: https://github.com/greenrobot/EventBus 版本是 EventBus-2.4.0 release
EventBus是基于订阅和发布的一种通信机制,使用流程如下:
- 实例化EventBus对象
- 注册订阅者
- 发布消息
- 接受消息
对应代码
EventBus eventBus = new EventBus();
eventBus.register(subscriber object);//注册订阅者
订阅者对象中必须有 onEvent public 方法
public void onEvent(Object event){
//接收消息
}
eventBus.post(event);//发送消息
应用到Activity和Fragment中
因为订阅者必须有onEvent方法,因此我们创建一个基类让onEvent方法作为抽象方法
public abstract class BaseFragment extends Fragment {
public BaseFragment() {
}
public abstract void onEvent(MyEvent eventData);
}
MainActivity
public class MainActivity extend