打点需求

需求

每次触发打点要时刻显示到屏幕上以供测试查看

实现思路

Toast+DelayQueue消息队列的方式
Toast显示不显示属性不能获取,如果要获取需要使用反射,反射可能会导致兼容
使用windowManager添加View,
之前打点是写好了的,所有打点都会走一个静态方法,这样的结果就是不能使用动态代理解决问题
问题
DelayQueue去控制时间,初试事件添加到队列的时间间隔不好控制,这里也违反了单一原则,window应该自己去处理自己消亡的时间,队列就应该管理自己的队列

采用技术

自定义window然后添加到windowManager中,window自己实现时间控制,可在外部添加显示时间
使用LinkedList实现队列用于存储传递过来的事件,有事件传递过来就存入队列尾部,如果队列长度不为0,window未显示那么显示window,window消失时在去检测队列长度是否为0不为0显示继续显示window
使用LinkedList时因为要频繁在对头队尾操作
注意:windowManager 在removeView如果添加同一个View那么会抛出异常,要创建不同的View,添加到window上
使用一个单例类来统一处理打点之外的需求,为什么不写成静态类,在以后再打点相关的需求时可以使用代理,这样就遵循了开发关闭原则

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容