業(yè)余的雙擊算法:

專業(yè)的雙擊算法:

1.System.arraycopy(mHits, 1, mHits, 0, mHits.length - 1);
這是在拷貝數(shù)組,將原來(lái)的數(shù)組中的元素的索引統(tǒng)一向前移動(dòng)一位,原來(lái)的第一個(gè)元素被覆蓋放棄,原來(lái)的最后一位成了倒數(shù)第二位。
2.mHits[mHits.length - 1] = SystemClock.uptimeMillis();
這是將數(shù)組的最后一個(gè)元素賦值為當(dāng)前的時(shí)間。
3.這樣的話 每次執(zhí)行click的時(shí)候,就會(huì)把當(dāng)前的時(shí)間存放在最后一位,而前若干次的click時(shí)間都會(huì)被順延到數(shù)組的前一位,每次都判斷一下數(shù)組的最后一個(gè)元素即當(dāng)前時(shí)間 與 數(shù)組的第一個(gè)元素即往前l(fā)ength個(gè)的時(shí)間 間隔是否滿足要求來(lái)觸發(fā)多擊邏輯。