EventBus初学总结

作者: 粘豆猫 | 来源:发表于2018-07-13 00:06 被阅读2次

    什么是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初学总结

        本文链接:https://www.haomeiwen.com/subject/shldpftx.html