🗒️Android组件通信:Eventbus原理解析

比尔盖子

技术分享|2020-7-16|最后更新: 2023-10-13|
type
status
date
slug
summary
tags
category
icon
password

概述

EventBus基于安卓优化的发布-订阅事件总线,本质上还是Java的观察者模式。消息接收者注册到Bus总线,消息发送后根据相应的消息类型分发消息。
notion image
总的注册和消息发送流程如下
notion image

源码解读

观察者注册

使用单例模式新建唯一EventBus实例
注册观察者
订阅的时候按监听方法参数分类缓存到Bus总线

消息发送

消息发送者通过post发送消息
拿到消息发送者发送消息的类型
使用反射方法的invoke方法唤起观察者的监听方法

反注册

根据观察者的类型移除事件总线中相应的观察者对象

总结

  1. 由于使用注解,在实际业务开发中可能定位Bug有困难
  1. 使用方便,比Handler和广播方便
  1. 关键代码使用反射,性能可能有所下降
Loading...