需求
每次触发打点要时刻显示到屏幕上以供测试查看
实现思路
Toast+DelayQueue消息队列的方式
Toast显示不显示属性不能获取,如果要获取需要使用反射,反射可能会导致兼容
使用windowManager添加View,
之前打点是写好了的,所有打点都会走一个静态方法,这样的结果就是不能使用动态代理解决问题
问题
DelayQueue去控制时间,初试事件添加到队列的时间间隔不好控制,这里也违反了单一原则,window应该自己去处理自己消亡的时间,队列就应该管理自己的队列
采用技术
自定义window然后添加到windowManager中,window自己实现时间控制,可在外部添加显示时间
使用LinkedList实现队列用于存储传递过来的事件,有事件传递过来就存入队列尾部,如果队列长度不为0,window未显示那么显示window,window消失时在去检测队列长度是否为0不为0显示继续显示window
使用LinkedList时因为要频繁在对头队尾操作
注意:windowManager 在removeView如果添加同一个View那么会抛出异常,要创建不同的View,添加到window上
使用一个单例类来统一处理打点之外的需求,为什么不写成静态类,在以后再打点相关的需求时可以使用代理,这样就遵循了开发关闭原则
网友评论