美文网首页
手写简单的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