文章目录
一、事件发送 postSingleEventForEventType 方法
- 一、事件发送 postSingleEventForEventType 方法
- 二、事件发送 postToSubscription 方法
- 三、事件发送 invokeSubscriber 方法
首先 , 在同步代码块中 , 根据事件类型获取 Map, CopyOnWriteArrayList> subscriptionsByEventType
// 成员的值 , 即 CopyOnWriteArrayList 集合
// 每个集合元素都是 Subscription 对象
// 其中封装了 一个订阅者类 和 一个订阅方法
subscriptions = subscriptionsByEventType.get(eventClass);
}
遍历上述集合 , 调用 postToSubscription 方法 , 进行事件传递后续操作 , 主要是执行 订阅者 中的 订阅方法 ;
// 调用 postToSubscription 方法 , 进行事件传递后续操作
// 主要是执行 订阅者 中的 订阅方法
postToSubscription(subscription, event, postingState.isMainThread);
EventBus.postSingleEventForEventType 方法源码 :
public class EventBus {
private final Map subscriptionsByEventType;
private boolean postSingleEventForEventType(Object event, PostingThreadState postingState, Class eventClass) {
CopyOnWriteArrayList subscriptions;
synchronized (this) {
// 根据事件类型获取 Map
关注
打赏
热门博文
- 【Android Gradle 插件】Gradle 自定义 Plugin 插件 ③ ( 自定义插件作用 | Android Gradle 插件的扩展 | 自定义 Extension 扩展 )
- 【Android Gradle 插件】Gradle 构建生命周期 ③ ( BuildListener 构建监听器 | TaskExecutionGraphListener 任务执行图监听器 )
- 【Android Gradle 插件】Gradle 构建生命周期 ② ( Gradle 类的添加构建生命周期监听器函数 | Gradle#addListener 函数 )
- 【Android Gradle 插件】Gradle 构建生命周期 ① ( 分析构建脚本 | 执行初始化配置 | 执行 Gradle 任务 | Project#beforeEvaluate 函数 )
- 【Android Gradle 插件】自定义 Gradle 任务 ⑨ ( 控制 Gradle 执行任务顺序 | Task#finalizedBy 函数 | 控制 Gradle 执行任务顺序示例分析 )
- 【Android Gradle 插件】自定义 Gradle 任务 ⑧ ( 控制 Gradle 执行任务顺序 | Task#shouldRunAfter 函数 | 三个函数使用场景对比 )
- 【Android Gradle 插件】自定义 Gradle 任务 ⑦ ( 控制 Gradle 执行任务顺序 | Task#dependsOn 函数 | Task#mustRunAfter 函数 )
- 【数学分析】集合 ① ( 集合概念 | 集合表示 | 常用的数集合 | 集合的表示 )
- 【数学分析】学科简介 ( 初等数学缺陷 | 微分与积分 | 学习数学分析的目的 | 数学分析与高等数学对比 )
- 【Android Gradle 插件】自定义 Gradle 任务 ③ ( Gradle 自定义任务创建方法 Project#task 函数 | Task#doFirst 函数用法 )