Android EventBus使用

  • Demo地址:https://github.com/jiutianbian/android_learn/tree/master/TestEventBus

Android EventBus是什么?

Android EventBus是一个发布/订阅者模式(Publisher/Subscriber)的轻量级消息框架,它对应的的git地址和官网如下:

  • github地址:https://github.com/greenrobot/EventBus
  • 官网:http://greenrobot.org/eventbus/

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("你好"));

你可能感兴趣的:(Android EventBus使用)