EventBus基本使用

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); // 订阅
@Override
protected 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线程执行 优先级100
public 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()这四个过程的具体实现。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值