EventBus简化了应用程序内各组件间、组件与后台线程间的通信。
优点是开销小,代码更优雅,以及将发送者和接收者解耦。
如果Activity和Activity进行交互还好说,如果Fragment和Fragment进行交互着实
令人头疼,我们会使用广播来处理,但是使用广播稍显麻烦并且效率也不高,如果传递的
数据是实体类需要序列化,那么很显然成本会有点高。今天我们就来学习下EventBus3.0
的使用方法。
EventBus的三要素:
- 1、Event:事件,可以是任意类型的对象。
- 2、Subscriber:事件订阅者,在EventBus3.0之前消息处理的方法只能限定于
- onEvent、onEventMainThread、onEventBackgroundThread和
- onEventAsync,他们分别代表四种线程模型。而在EventBus3.0之后,事件处理的方
- 法可以随便取名,但是需要添加一个注解@Subscribe,并且要指定线程模型(默认为
- POSTING),四种线程模型下面会讲到。
- 3、Publisher:事件发布者,可以在任意线程任意位置发送事件,直接调用
-
-
- EventBus的
-
- post(Object)方法。可以自己实例化EventBus对象,但一般使用EventBus.getDefault()就好了,根据post函数参数的类型,会自动调用订阅相应类型事件的函数。