EventBus

EventBus:

1.EventBus概述

EventBus出自greenrobot,和之前大名鼎鼎的GreenDao出自同一家。之前一直使用的是2.4版本,EventBus3.0最新的特性就是加入了注解,通过注解的方式 告知订阅函数运行在哪个线程中。



2.EventBus好处

EventBus是一款针对Android优化的发布/订阅事件总线。主要功能是替代Intent,Handler,BroadCast在Fragment,Activity,Service,线程之间传递消息.优点是开销小,代码更优雅,以及将发送者和接收者解耦。



3.EventBus框架中涉及四个成分


订阅者,发布者,订阅事件,事件总线

register订阅,unregister取消订阅,post发布,接收事件

EventBus主要角色: Event 传递的事件对象 Subscriber 事件的订阅者 Publisher 事件的发布者 ThreadMode 定义函数在何种线程中执行



4.ThreadMode总共四个:


POSTING和发布者处在同一个线程

MAINUI主线程

BACKGROUND后台线程

ASYNC异步线程



5.EventBus黏性事件

EventBus黏性事件概述

EventBus除了普通事件也支持粘性事件,这个有点类似广播分类中的粘性广播。本身粘性广播用的就比较少,为了方便理解成订阅在发布事件之后,但同样可以收到事件。订阅/解除订阅和普通事件一样,但是处理订阅函数有所不同,需要注解中添加sticky = true


6.EventBus优缺点:

优点:简化组件之间的通信方式,实现解耦让业务代码更加简洁,可以动态设置事件处理线程以及优先级

缺点:目前发现唯一的缺点就是类似之前策略模式一样的诟病,每个事件都必须自定义一个事件类,造成事件类太多,无形中加大了维护成本

你可能感兴趣的:(EventBus)