EventBus是为Android优化的发布/订阅事件总线。
EventBus ...
- 简化组件之间的通信
- 分离事件发送者和接收者
- 对活动,片段和后台线程表现良好
- 避免复杂和容易出错的依赖关系和生命周期问题
- 使您的代码更简单
- 是快的
- 很小(约50k瓶)
- 在实践中证明了具有100,000,000+个安装的应用程序
- 具有先进的功能,如交付线程,用户优先级等。
第一步 添加依赖
compile 'org.greenrobot:eventbus:3.0.0'
第二步 新建一个event的类 ,这个类里面可以做一些你想要的额外字段,比如:
public static class MessageEvent { /* Additional fields if needed */ }
第三步 在你需要接收信息的界面 注册以及反注册
@Override
public void onStart() {
super.onStart();
EventBus.getDefault().register(this);
}
@Override
public void onStop() {
super.onStop();
EventBus.getDefault().unregister(this);
}
第四步 在你需要接收信息的界面 写一个方法,方法名随便,一般为onEvent ,比如: !注解千万不要丢了
@Subscribe(threadMode = ThreadMode.MAIN)
public void onEvent(MessageEvent event) {/* Do something */};
第五步 在你需要发送信息的界面 调用EventBus的方法
EventBus.getDefault().post(new MessageEvent ());