Android开发Android开发Android技术知识

EventBus 3.x 的快速使用

2018-02-26  本文已影响56人  ayuhani

这是自己工作中的一篇笔记。
文章已同步至 CSDN:http://blog.csdn.net/qq_24867873/article/details/79376401

EventBus 可以很方便地进行各组件间的通信,解耦性更强,比广播更好用。

快速使用

1. 编译
compile 'org.greenrobot:eventbus:3.1.1'
2. 自定义事件类
public class MessageEvent {

    // 成员变量根据自己的需求创建
    private int type;

    // 通过构造方法传递数据
    public MessageEvent(int type) {
        this.type = type;
    }

    public int getType() {
        return type;
    }

    public void setType(int type) {
        this.type = type;
    }
}
3. 注册事件与解除注册

一般来说,在 OnCreate() 方法中进行注册:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_layout);
    EventBus.getDefault().register(this);
}

与之对应的,在 OnDestroy() 中解除注册:

@Override
protected void onDestroy() {
    super.onDestroy();
    EventBus.getDefault().unregister(this);
}
4. 发送事件
EventBus.getDefault().post(new MessageEvent(type));
5. 接收与处理事件
/**
* @Subscribe 注解必须要写,线程需要指定
* 方法名可随意
*/
@Subscribe(threadMode = ThreadMode.MAIN)
public void onMessageEvent(MessageEvent event) {
    switch (event.getType()){
        // do your thing
    }
}

上面提到了线程模型,它一共有 5 种:

以上便是 EventBus 的最基本的使用,是不是很方便呢。

欢迎关注我的微信公众号
上一篇下一篇

猜你喜欢

热点阅读