您当前的位置: 首页 > 

韩曙亮

暂无认证

  • 3浏览

    0关注

    1068博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

【EventBus】EventBus 源码解析 ( 事件发送 | postToSubscription 方法 | EventBus 线程模式处理细节 )

韩曙亮 发布时间:2021-09-24 20:42:00 ,浏览量:3

文章目录
  • 一、事件发送 postSingleEventForEventType 方法
  • 二、事件发送 postToSubscription 方法
  • 三、事件发送 invokeSubscriber 方法

一、事件发送 postSingleEventForEventType 方法

首先 , 在同步代码块中 , 根据事件类型获取 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            
关注
打赏
1663594092
查看更多评论
0.0528s