EventBus基本使用

来源:互联网 发布:java商城项目面试 编辑:程序博客网 时间:2024/06/03 19:41

1、引入

compile 'org.greenrobot:eventbus:3.0.0'

2、定义事件实体类

public class EventMsg {    private String msg;    public String getMsg() {        return msg;    }    public void setMsg(String msg) {        this.msg = msg;    }}

3、注册事件和释放事件

EventBus.getDefault().register(this); // 订阅
@Overrideprotected void onDestroy() {    super.onDestroy();    EventBus.getDefault().unregister(this); // 解除订阅}

4、订阅事件处理

@Subscribe(threadMode = ThreadMode.MAIN) //在ui线程执行public void onDataSynEvent(EventMsg event) {    tvShowMsg.setText(event.getMsg());}

5、发送消息

EventMsg msg = new EventMsg();msg.setMsg("hello eventBus");EventBus.getDefault().post(msg);

6、订阅事件的优先级

@Subscribe(threadMode = ThreadMode.MAIN,priority = 100) //在ui线程执行 优先级100public void onDataSynEvent(EventMsg event) {    Log.e(TAG, "event---->" + event.getCount());}

7、终止事件往下传递

EventBus.getDefault().cancelEventDelivery(event) ;//优先级高的订阅者可以终止事件往下传递

8、总结

以上是EventBus的最简单实用方法,3、4点代码一般放在同一个activity中,起到注册监听的作用,5点放在另一个activity中,主要用来发送事件。

接下来将从源码的角度来分析 getDefault() –>register()–>post()–>unregister()这四个过程的具体实现。

原创粉丝点击