一、前言
eventbus3.0的优缺点分析:
eventbus基于观察者模式,用很少的代码,帮我们实现很多功能,使我们的代码变得很优雅。但是大面积的使用eventbus之后,会发现一些很严重的问题
- 需要创建很多的类来区分订阅方法,订阅的方法越多,类越多,代码越多,apk的体积越大
- 以类来贯穿这个事件传递的方式,广播方式发送问题后,排查事件源或订阅方法的难度比较大
- 需要写很多的订阅方法,订阅方法满天飞,很容易发生dex方法数超出
- 发送的广播无法收到返回值
- 不知道private的订阅方法,不知道eventbus为什么要这么设计
- 明明不用发送数据,只是通知,也需要传递一个类
- 无法取消单独的某一个订阅的方法
围绕这个上面几个问题,我在eventbus的基础上进行了改善。
二、改善说明: 基于android eventbus 3.0 版本优化:
-
优化前期以类为区分监听接收对象,需要创建很多类,优化后采用字符串方式作为事件event-key区分代替以类的方式,避免创建太多类,减少代码量,比较优雅,本思想也参考ios通知的实现。
-
支持返回值,支持private和static的方法
-
优化前,订阅者需要订阅很多监听方法来区分分类&#x