业余的双击算法:
专业的双击算法:
1.System.arraycopy(mHits, 1, mHits, 0, mHits.length - 1);
这是在拷贝数组,将原来的数组中的元素的索引统一向前移动一位,原来的第一个元素被覆盖放弃,原来的最后一位成了倒数第二位。
2.mHits[mHits.length - 1] = SystemClock.uptimeMillis();
这是将数组的最后一个元素赋值为当前的时间。
3.这样的话 每次执行click的时候,就会把当前的时间存放在最后一位,而前若干次的click时间都会被顺延到数组的前一位,每次都判断一下数组的最后一个元素即当前时间 与 数组的第一个元素即往前length个的时间 间隔是否满足要求来触发多击逻辑。