消息传递机制之EventBus的使用详细

本文介绍了EventBus的由来、作用,详细阐述了其主要角色、使用方法、线程模型、实例演示、粘性事件特性,以及优缺点和与2.x版本的对比。EventBus简化了Android组件间通信,但过多的事件类可能增加维护成本。
摘要由CSDN通过智能技术生成

 EventBus是怎样管理事件总线的, 是不是最佳处理消息的方案?让我们一同来学习和认识.

EventBus由来

    在面对应用程序内组件间, 组件与后台线程间的通信. 又如我们在处理耗时操作时, 等到耗时操作完成后通过Handler或者Broadcast去更新UI, 但是面对多个Activity之间需要通过Listener通信完成. 但是这些问题我们可以通过EventBus来完成.它是通过发布/订阅的方式来管理事件总线 .通过注解和反射机制将订阅者连同订阅函数保存起来, 然后在发送订阅的时候遍历订阅函数数组进行调用, 但是这种形式会影响到EventBus的执行效力.

EventBus的介绍

    EventBus出自greenrobot, 与GreenDao是一家. 而EventBus3.0框架采用了建造者模式, 并加入注解, 通过注解的方式告知订阅函数运行在哪一个线程中.

EventBus主要角色

  •     Event 传递的事件对象
  •     Subscriber 事件的订阅者
  •     Publisher事件的发布者
  •     ThreadMode 定义函数在那种线程中执行

官网给出的各种角色的协作图


EventBus使用

  1. 在build.gradle中添加引用
compile 'org.greenrobot:eventbus:3.0.0'

    2. 定义一个事件类型

 public class EventInfoBean {
     public String msg;
     public EventInfoBean(String msg) {
         this.msg = msg;
      }
  }

    3.订阅事件

EventBus.getDefault().register(this);

    4. 发布事件

EventBus.getDefault().post(new 	EventInfoBean("eventBus发送的消息"))

    5. 解除订阅(一般放在onDestroy()中)

EventBu
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值