EventBus源码解析(一):概述
EventBus源码解析(二):Register
EventBus源码解析(三):Post/PostSticky
EventBus源码解析(四):优化-EventBusIndex
通过post或者postSticky发布事件,如果postSticky则会把事件放到stickyEvents里面,后面注册的对象如果有sticky方法会从这里拿。
- 事件会被放到对应线程的PostingThreadState里面的eventQueue里面,如果PostingThreadState之前没在消费事件,则调用PostingThreadState开始消费事件。
- 如果设置支持事件父类也能监听到这个事件,则找到所有的事件列表
- 逐一发送事件,根据事件类型从subscriptionsByEventType找到所有的监听者Subscription
- 根据Subscription里面的响应线程分发事件
总体看来,Eventbus的原理还是很简单的
网友评论