原理:
System提供了一个静态方法arraycopy(),我们可以使用它来实现数组之间的复制。其函数原型是:
public static void (Object src, int srcPos, Object dest, int destPos, int length)
src:源数组; srcPos:源数组要复制的起始位置;
dest:目的数组; destPos:目的数组放置的起始位置; length:复制的长度。
eg:int[] arr=new int[6];
arr={1,2,3,4,5,6}
执行System.arraycopy(arr,2,arr,3,3)
此时arr变为12
// 四次点击事件 final long[] mHints = new long[4];
public void onClick(View v) { // 将mHints数组内的所有元素左移一个位置 System.arraycopy(mHints, 1, mHints, 0, mHints.length - 1); //获得当前系统已经启动的时间 mHints[mHints.length - 1] = SystemClock.uptimeMillis(); if (SystemClock.uptimeMillis() - mHints[0] <= 500) { //你的具体操作 } } });
原理:
1:定义一个数组,几击就定义数组长度为几。
2:开始数组每个元素都是默认的0,点击一下后,把数组的每个元素都向前copy一位,把当前点击的时间放入数组最后一位。
最终判断4次连击后的当前时间-首位数组时间间隔小于500毫秒就算是4次连击成功!