前言
EventBus是greenrobot出品的非常优秀的基于发布、订阅模式的一套框架,很早就想写篇文章介绍他的文章,可是一直也没时间写,今天就写篇文章也算总结一下吧。
首先说说EventBus的优点:它是一个基于观察者模式的事件发布/订阅框架,开发者可以通过极少的代码去实现多个模块之间的通信,而不需要以层层传递接口的形式去单独构建通信桥梁。从而降低因多重回调导致的模块间强耦合,同时避免产生大量内部类。它拥有使用方便,性能高,接入成本低和支持多线程的优点,实乃模块解耦、代码重构必备良药。
它支持Activities, Fragments, Threads, Services之间的数据传递,这是他的官方原理图。
EventBus3.0和之前的EventBus2.4使用上是有区别的,由于3.0使用了注解的方式,并且增加了“SubscriberInfoIndex”要比2.0的效率高出了很多,所以今天我们讲解EventBus3.0的使用。
2017年3月13日文章修改(gradle2.2.0后的代码生成)
由于gradle2.2.0修改了注解的生成方式,所以在eventbus3.0生成“MyEventBusIndex”也不相同。
在gradle2.2.0之前使用:android-apt
在gradle2.2.0之后使用:annotationProcessor
引入EventBus3.0
gradle2.2.0之前引入EventBus3.0
1、在app的build.gradle中的 dependencies 中添加的 EventBus3.0的依赖
- compile 'org.greenrobot:eventbus:3.0.0'
2、如果你想开启加速模式,你还需要配置eventbus-annotation-p