项目中的需求比较复杂,涉及很多页面的关联刷新,而且代码是之前的人写的,耦合比较多,短时间有不能做太多的修改,为避免频繁刷新,于是自己研究写了一套信号延迟发送机制。


延迟发送信号管理
1.需求描述

 解决ui不必要的频繁刷新,只有当前ui才会收到刷新信号,其他ui延迟收消息
2.技术依赖
   容器类的去重机制

3.设计方案

   信号触发后需要检测注册监听的对象是否激活,如果激活则发送信号,否则延迟触发

4.模块主要类

SignalManager 信号管理类
SignalQueue 信号队列管理
Signal  信号封装类 

5.设计流程图
Android延迟发送信号管理-LMLPHP
6.使用说明

由于SignalQueue中使用HashSet来去重,所以Signal必须实现hashCode()方法,信号附带数据类必须实现toString()方法

欢迎大家提供更好的参考意见,项目已上传github,https://github.com/landuochong/SignalManager


12-18 01:06