Android防爆力点击简单实用方法简介

Android2019年4月25日 pm7:33发布3年前 (2021)更新 3xcn.com@站长
0 0 0
广告也精彩

在产品测试,有些按钮或者功能需要进行暴力测试。理论上说是没啥问题,但是有些功能响应需要一定的时间,如果在很短时间内来多次点击就会异常或者奔溃。

因此,在有些功能是需要对功能加一些防爆力点击措施。闲着没事也整理一下自己项目中常用的措施,当然如果您有更好的方法,也欢迎分享。

你有一个苹果,我有一个苹果,彼此交换一下,我们仍然是各有一个苹果;但你有一种思想,我有一种思想,彼此交换,我们就都有了两种思想,甚至更多。

方法一:Handler机制

原理:设置判断条件,响应过后设置标签为false,然后使用Handler的延迟机制设置为true

PS:下面只是部分代码展示

               boolean allowClick = true; //默认是true 

               if(!allowClick){
        	    return;
		}
		allowClick= false;
                //延迟2s后allowClick置为true
        	uiHandler.sendEmptyMessageDelayed(MSG_DELAY_ALLOW_CLICK, 2000);

allowClick置为true要考虑其他情况,比如onPause()、onDestory()、onResume()也要置为true,否则有时候可能出现无法响应(因为allowClick为false)

方法二:比对开始响应时间和下一次响应时间间隔

原理:也是设置判断条件,但是这个只是计算上一次响应到下一次响应时间,如果符合条件就继续执行。

我们知道下面两个方法都可以

1、public static long currentThreadTimeMillis () 返在当前线程运行的毫秒数。

2、public static long elapsedRealtime () 返回系统启动到现在的毫秒数,包含休眠时间。

理论上都可以用,但是个人偏爱elapsedRealtime(),这个是计算系统启动到现在的时间,比较准确。

            long pre= 0; //定义在方法之外,用于保存时间          

            //执行功能内,获取当前执行时的时间
            long cur = SystemClock.elapsedRealtime();
            if ((cur - pre) > 1500) {//间隔大于1.5s
                //do something ....
                pre = SystemClock.elapsedRealtime();
            }

 

总结:两种方法,但个人偏爱于第二种方法简单使用。第一种还要考虑内存泄漏等问题。

 历史上的今天

版权声明 1、 本站名称: 91易搜
2、 本站网址: 91es.com3xcn.com
3、 本站文章: 部分来源于网络,仅供站长学习和参考,若侵权请留言
广告也精彩

相关文章

广告也精彩

暂无评论

评论审核已启用。您的评论可能需要一段时间后才能被显示。

暂无评论...

网站升级中

公告

近期网站升级中,可能存在一些bug。欢迎反馈 https://www.91es.com/we.html

本站域名

本站域名 : 91es.com3xcn.com。本站邮箱 : 站长邮箱 i@oorr.cn,通知邮箱we@oorr.cn ,如有更新,请看公告 。