type
status
date
slug
summary
tags
category
icon
password
概述
EventBus基于安卓优化的发布-订阅事件总线,本质上还是Java的观察者模式。消息接收者注册到Bus总线,消息发送后根据相应的消息类型分发消息。
总的注册和消息发送流程如下

源码解读
观察者注册
使用单例模式新建唯一EventBus实例
注册观察者
订阅的时候按监听方法参数分类缓存到Bus总线
消息发送
消息发送者通过post发送消息
拿到消息发送者发送消息的类型
使用反射方法的invoke方法唤起观察者的监听方法
反注册
根据观察者的类型移除事件总线中相应的观察者对象
总结
- 由于使用注解,在实际业务开发中可能定位Bug有困难
- 使用方便,比Handler和广播方便
- 关键代码使用反射,性能可能有所下降
- 作者:比尔盖子
- 链接:https://www.connorshen.site/article/d04a6f5c-a301-4780-bfda-9046b8f5c5a4
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。