EventBus初学总结

什么是EventBus?

EventBus是基于发布/订阅者机制的,对事件进行发布和接受,例如Intent、Handler、Broadcast等功能,但是EventBus相对于前者们  开销小,解耦性强。

使用EventBus

首先要添加依赖

compile 'org.greenrobot:eventbus:3.1.1'

介绍:

EventBus基于发布/订阅者模式,首先要创建一个事件,其次进行发布、订阅。

1.创建事件

自定义一个事件类,定义用来传输的数据的类型。

2.订阅事件

分三步

1. 注册订阅者

2.订阅事件

3.注销订阅者


1) 注册订阅者

2) 订阅事件

订阅事件要用@Subscribe 注解来定义

其中threadMode有四种类型

1. POSTING (默认) :表示事件处理跟发布事件在同一个线程。

2. MAIN 表示事件处理在主线程(UI)线程(在这里不能进行耗时操作)。

3. BACKGROUND 表示事件处理在后台线程。

4. ASYNC 表示事件处理始终会新建一个子线程运行(同样不能进行UI操作)。

3) 注销订阅者

3. 发布事件

在需要的地方发布事件,所有订阅了该类型事件并已注册的订阅者将收到该事件

另外还有 粘性事件

      粘性事件指的是:如果先发布了事件,然后有订阅者订阅了该事件,那么除非再次发布该事件,否则订阅者将永远接收不到该事件。此时,可以使用粘性事件。发布一个粘性事件之后,EventBus将在内存中缓存该粘性事件。当有订阅者订阅了该粘性事件,订阅者将接收到该事件。

参考:EventBus使用详解

你可能感兴趣的:(EventBus初学总结)