業余的雙擊算法:
專業的雙擊算法:
1.System.arraycopy(mHits, 1, mHits, 0, mHits.length - 1);
這是在拷貝數組,將原來的數組中的元素的索引統一向前移動一位,原來的第一個元素被覆蓋放棄,原來的最后一位成了倒數第二位。
2.mHits[mHits.length - 1] = SystemClock.uptimeMillis();
這是將數組的最后一個元素賦值為當前的時間。
3.這樣的話 每次執行click的時候,就會把當前的時間存放在最后一位,而前若干次的click時間都會被順延到數組的前一位,每次都判斷一下數組的最后一個元素即當前時間 與 數組的第一個元素即往前length個的時間 間隔是否滿足要求來觸發多擊邏輯。