概述
介绍完了 EventBus 的基本用法之后,照例要进行一下源码分析。
本文基于 EventBus V3.0.0 进行分析,并尽量保持同步更新。
未完待续……
消息订阅
1 | public void register(Object subscriber) { |
SubscriberMethodFinder
SubscriberMethodFinder 作用是解析并找出订阅对象中所有的订阅方法。
1 | SubscriberMethodFinder(List<SubscriberInfoIndex> subscriberInfoIndexes, boolean strictMethodVerification, |
1 | List<SubscriberMethod> findSubscriberMethods(Class<?> subscriberClass) { |
获取订阅对象中的订阅方法列表:
1 | private List<SubscriberMethod> findUsingInfo(Class<?> subscriberClass) { |
解析订阅对象的注解信息。
因为订阅方法以及它的一些属性都是通过注解来标识的,只有解析到了这些方法才能向它们发布消息事件。
1 | private void findUsingReflectionInSingleClass(FindState findState) { |
消息发布
1 | private void postToSubscription(Subscription subscription, Object event, boolean isMainThread) { |
未完待续……