美文网首页
手写简单的EventBus

手写简单的EventBus

作者: sheshizhang | 来源:发表于2018-08-16 17:42 被阅读17次

    EventBus能够简化各组件间的通信,让我们的代码书写变得简单,能有效的分离事件发送方和接收方(也就是解耦的意思),能避免复杂和容易出错的依赖性和生命周期问题。很多人的开发中都喜欢用到它。

    EventBus包括了三个要素

    1:Event 事件,它可以包括各个类型,类,字符串,等等类型。

    2:subscriber订阅者,eventBus3.0 之后名字可以任意取。不过要加上注解@Subcribe()并且指定线程POSTING

    3:事件发送者,可以在任意线程中发布。EventBus.getDefault()就可以得到一个EventBus对象,然后再调用post(Object)方法即可。

    EventBus有四种线程类型

    POSTING 处理函数线程和发布事件线程都在同一个线程中。

    MAIN 发布和处理线程都在主线程(UI线程)所以不能进行复杂的和耗时的操作。

    BACKGROUND 标识处理线程在后台线程,如果发布线程实在主线程,那么事件处理线程会重新开一个后台线程

    来进行操作,如果发布事件线程在后台线程,则处理事件也用该后台线程。

    ASYNC 无论事件发布是那个,事件处理线程始终使用和创建新的子线程操作,同样不能进行UI操作。

    手写EventBus就要了解它的源码和实现步骤。

    本人查看了Eventbus源码后自建撰写了分demo,希望和网友一起研究研究

    附件为github源码地址:

    手写EventBus实现

    相关文章

      网友评论

          本文标题:手写简单的EventBus

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