Andoid 总线设计 (二)

来源:互联网 发布:表单验证 js 编辑:程序博客网 时间:2024/06/06 01:23

EvenBus 用的原理很简单 就是 java 的反射。
1. 扫描注册的类,获取有标记的方法,方法参数(Even),及标记(Annotation)里面的内容等相关 的一些信息,保存在内存变量里面。
2. 在调用Post的时候 ,遍历刚刚 扫描到的方法 根据 Post 的参数(Even) 获取 相应要执行的方法列表。
3. 获取到方法后 调用 Method.invoke();
大致 思路就是这样子。
原理图:
这里写图片描述

根据这个原来 简单的 实现了 EvenBus,仅通过注解方式。

我们来看看 我的类构成结构:

这里写图片描述
annotation 是标记的注解
distribute 是事件分发处理 包括同步分发 和 异步分发
reflect 是反射的处理 获取标记的方法,执行反射方法。
EventBus 处理主类

EventBus 是一个单列 ,保证 一个工程里面只有一个实例。

下一章节 说说具体的实现。

0 0