关于EventBus 的源码解析网上有很多优秀的文章
https://www.jianshu.com/p/83e44261e095
我们这里只需要总结归纳出 4个表 和 4种处理方式 ,可以串联起整个EventBus的设计原理
4个表
key | value | 用途 |
---|---|---|
Event事件类型class | Event class继承类集合 | 事件继承发送使用 |
Event事件类型 | Subscribtion实例 | 主要的发送的表关系 通过事件类型获取到注册实例然后通过反射调用对应的方法 |
Subscriber | Events事件类型集合 | 注册与反注册使用 |
Event事件类型 | Subscriber | 粘性事件使用 |
4种处理方式
事件类型 | 实现方式 | 用途 |
---|---|---|
Main | 通过在MainThread里面的Handler实现 | 主线程,一般更新UI |
Post | 哪里发布哪里实现,线程不可控 | 不是很需要强调任务中线程 |
Aysnc | 异步线程池执行 | 后台的耗时的 |
Backgroud | 异步的,但是通过队列实现的串行的执行方式 | 后台的但是要求不高 |