Android EventBus是什么?
Android EventBus是一个发布/订阅者模式(Publisher/Subscriber)的轻量级消息框架,它对应的的git地址和官网如下:
Android EventBus能解决什么问题?
- 简化了组件间的通讯。
- 分离了事件的发送者和接受者。
- 避免了复杂的和易错的依赖关系和生命周期问题。
- 能够有助于单元测试
网上说EventBus可以代替Android传统的Intent,Handler,Broadcast或接口函数,在Fragment,Activity,Service线程之间传递数据,这个具体的到实际使用中,大家还是得根据自己的实际需要来自行判断。
Android EventBus具体该怎么使用?
一、导入依赖包
- IDE和构建工具:androidstudio Gradle
- EventBus版本号:3.0.0
找到gradle配置文件build.gradle(Module:app),注意是app的配置文件,然后在dependencies添加如下配置,然后如下图所示点击sync,重新下载并导入依赖的EventBus包
compile 'org.greenrobot:eventbus:3.0.0'
二、定义事件消息类
public class MessageEvent {
public final String message;
public MessageEvent(String message) {
this.message = message;
}
}
三、注册和取消事件
EventBus.getDefault().register(this);
EventBus.getDefault().unregister(this);
四、订阅者处理事件
@Subscribe(threadMode = ThreadMode.MAIN) //在ui线程执行
public void onMessageEvent(MessageEvent event) {
Toast.makeText(this, event.message, Toast.LENGTH_SHORT).show();
}
五、发布者发布事件
EventBus.getDefault().post(new MessageEvent("你好"));