EventBus源码阅读(23)-EventBus其它

本文探讨了EventBus源码中未深入分析的函数,包括builder()用于自定义EventBus配置,clearCaches()用于清除缓存,isRegistered(Object)检查类是否已注册,cancelEventDelivery(Object)取消事件传递,以及sticky相关函数和hasSubscriberForEvent(Object)。同时提到了handleSubscriberException是处理订阅者异常的集中点,但未进行详细分析。下一部分将深入研究sticky事件的相关内容。
摘要由CSDN通过智能技术生成

看看还剩下那些函数没有读:



我们一个个的看过来:

1、builder()

    public static EventBusBuilder builder() {
        return new EventBusBuilder();
    }
该函数是静态的,返回的是一个新的EventBusBuilder

那么可以猜测使用了个性化定制EventBusBuilder的接口。我们可以通过它个性化定制EventBus。

2、clearCaches()

字面意思以及实现都是清除缓存。很少使用。除非我们在使用的过程中有什么特殊的需求。

3、isRegistered(Object)

判断当前类是否已经注册过了(Activity)

4、cancelEventDelivery(Object)

取消事件,当前为发现使用,应该是为了以后功能完善而做的。

5、stiky相关函数

6、hasSubscriberForEvent(Object)

    public boolean hasSubscriberForEvent(Class<?> eventClass) {
        List<Class<?>> eventTypes = lookupAllEventTypes(eventClass);
        if (eventTypes != null) {
            int countTypes = eventTypes.size();
            for (int h = 0; h < countTypes; h++) {
                Class<?> clazz = eventTypes.get(h);
                CopyOnWriteArrayList<Subscription> subscriptions;
                synchronized (this) {
                    subscriptions = subscriptionsByEventType.get(clazz);
                }
                if (subscriptions != null && !subscriptions.isEmpty()) {
                    return true;
                }
            }
        }
        return false;
    }
判断该事件是否已经注册过,即是否有响应的方法。

7、handleSubscriberException
集中处理可控异常的函数,不再做分析,与好几个相关的一场相关类有关

下一节我们详细读一读sticky相关的内容





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值