[发明专利]一种事件去抖动的方法及装置有效
申请号: | 201611101725.5 | 申请日: | 2016-12-05 |
公开(公告)号: | CN108153581B | 公开(公告)日: | 2022-01-04 |
发明(设计)人: | 龚宁 | 申请(专利权)人: | 武汉斗鱼网络科技有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48 |
代理公司: | 北京众达德权知识产权代理有限公司 11570 | 代理人: | 刘杰 |
地址: | 430000 湖北省武汉市东湖开*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 事件 抖动 方法 装置 | ||
本发明提供了一种事件去抖动的方法及装置,方法包括:接收当前事件;在预设的等待时间内,判断是否存在待处理事件;若存在所述待处理事件,判断是否存在待处理的初始事件,若存在所述待处理的初始事件,则执行所述初始事件的处理逻辑;当执行所述初始事件的处理逻辑后,到达预设的延迟等待时间时,执行结束事件的处理逻辑;所述初始事件为抖动事件发生时不占用资源的状态事件,所述结束事件为所述抖动事件中最后触发的事件;如此,通过预设一初始事件,在有抖动事件发生时,实现执行初始事件,并过滤掉中间的抖动事件不执行,直接执行结束事件,减少了逻辑处理,有效的降低了处理器及内存的占用,提高了应用的稳定性,进而提高了用户的操作效率。
技术领域
本发明涉及终端设备技术领域,尤其涉及一种事件去抖动的方法及装置。
背景技术
安卓应用中,事件的触发可能是断断续续也可能是连续的,当连续触发的间隔时间很短,短到前面的事件还没来的及处理完又触发了新的事件,或处理的事件影响用户的体验,界面频繁的变化时,我们称这种连续触发的事件为抖动事件。
在抖动事件发生后,会连续处理抖动事件,占用大量的处理器及内存,导致应用不稳定,降低了用户的操作效率。
发明内容
针对现有技术存在的问题,本发明实施例提供了一种事件去抖动的方法及装置,用于解决现有技术中在抖动事件发生后,会连续处理抖动事件,占用大量的处理器及内存,导致应用不稳定,降低了用户的操作效率的技术问题。
本发明提供一种事件去抖动的方法,所述方法包括:
接收当前事件;
在预设的等待时间内,判断是否存在待处理事件;
若存在所述待处理事件,判断是否存在待处理的初始事件,若存在所述待处理的初始事件,则执行所述初始事件的处理逻辑;
当执行所述初始事件的处理逻辑后,到达预设的延迟等待时间时,执行结束事件的处理逻辑;其中,
所述初始事件为抖动事件发生时不占用资源的状态事件,所述结束事件为所述抖动事件中最后触发的事件。
上述方案中,判断是否存在待处理事件,具体包括:
获取变量hasEvent的值;
判断所述hasEvent的值是否为true;
若所述变量hasEvent的值为true,则确定存在所述待处理事件。
上述方案中,判断是否存在待处理的初始事件,具体包括:
获取变量hasInitEvent的值;
判断所述hasInitEvent的值是否为true;
若所述变量hasInitEvent的值为true,则确定存在所述待处理的初始事件。
上述方案中,在预设的延迟等待时间内,执行结束事件的处理逻辑之前,所述方法还包括:
将所述hasInitEvent的值赋值为false;
调用timer.cancel()取消所述预设的等待时间后的延迟计时;
调用timer.schedule()重新计时所述预设的延迟等待时间。
上述方案中,若不存在所述待处理事件时,所述方法还包括:
将所述当前事件标记为结束事件;
调用timer.schedule()重新计时所述预设的等待时间;
到达所述预设的等待时间时,执行所述结束事件的处理逻辑。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉斗鱼网络科技有限公司,未经武汉斗鱼网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611101725.5/2.html,转载请声明来源钻瓜专利网。