原帖 | Jack | 2024-09-26 15:06 | 👍0 | 阅读约1
如果在按键中,我需要检测双击,也就是某段时间内再次按下,判定双击、多击等等,那我就需要做超时检测,也就是我算出来的tick是短按,但不能立刻做出判断,需要等一定超时时间。有什么比较好的实现方法吗?
状态机的状态优化。
如果做双击连按等功能,一般需要这个超时的,但这个超时可以被上层应用去判断是否加这个超时,比如说,当前环境下只有短按有效,那就不需要去考虑有连按的情况,就能快速响应,不需要去判断这个超时。
具体的例子是,你这个按钮就是控制开灯关灯的,按一下开灯,按一下关灯,那在这个业务环境下就没有必要检测超时来判断是否是连按。
如果当前环境要检测双击,那这个超时是必要的,需要判断第二次没按下,才返回单击。举个例子,还是这个灯,我现在不仅开关灯,我还要在开灯后,双击的时候调节灯的亮度,那这时候我就可以加入双击判断,即使你单次按,那我反正也是要关灯,并不影响用户体验。
所以这里就是状态机的优化,尽可能明确状态和缩小状态控制区。
相关笔记