Android 连续点击X次,作相应地响应

今天写一个比较有意思的算法,是从别的博客看到的。这个算法可以记下来,以后有其他类似需求可以做点小小的思想转变用此算法实现。代码如下:

···

public void showBuildVersion() {

System.arraycopy(seconds, 1, seconds, 0, seconds.length - 1);//把从第二位至最后一位之间的数字复制到第一位至倒数第二位

seconds[seconds.length - 1] = SystemClock.uptimeMillis();//更新最后一位

if (SystemClock.uptimeMillis() - seconds[0] <= 2000) {//连续点击之间间隔小于2秒,有效

PackageManager packageManager = getPackageManager();

PackageInfo packageInfo;

try {

packageInfo = packageManager.getPackageInfo(getPackageName(), 0);

ToastTool.showShort(this, "build版本号:" + packageInfo.versionCode);

} catch (PackageManager.NameNotFoundException e) {

e.printStackTrace();

}

}

}

···

这个方法实现的是连续点击5次,即弹出版本号。每点击1次就调用showBuildVersion();

其中,seconds是一个长度为5的long数组。System.arraycopy(seconds, 1, seconds, 0, seconds.length - 1);表示把数组的第二位至最后一位之间的值复制到第一位至倒数第二位,

可以理解成把seconds数组的后4位整体往前移了1位,然后seconds[seconds.length - 1] = SystemClock.uptimeMillis();//更新最后一位。

取数组的第一位seconds[0]与当前系统时间判断,如果在2秒之内,即作出响应。只有在点击5次之后,seconds[0]才是有值的,否则seconds[0]的时间值是0,0与SystemClock.uptimeMillis()时间相差自然是不止2秒的。点击5次之后,seconds[0]有值了,它的值是第一次点击时的时间,与当前系统时间比较,差值<2秒,则作出响应。

        有什么疑问或建议欢迎留言评论噢!谢谢你的观看。

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

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,256评论 19 139
  • java笔记第一天 == 和 equals ==比较的比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量...
    jmychou阅读 1,552评论 0 3
  • 自定义双击事件 点击事件:在控件上按下,离开,有瞬间的停留。 双击事件:在单位时间内,双击。 多击事件:在单位时间...
    未见哥哥阅读 880评论 0 0
  • 一、JS前言 (1)认识JS 也许你已经了解HTML标记(也称为结构),知道了CSS样式(也称为表示),会使用HT...
    凛0_0阅读 2,825评论 0 8
  • 那年夏天,我还戴着燕尾帽,穿着天使服,穿插在每个需要我的病房,小腿时而疼又时而酸,却掩盖不了自己心中的那份满...
    沐沐梓梓阅读 352评论 0 0