一般我們項目中都會有一個工具方法是用來防止按鈕重複點擊的:
private static long lastClickTime;
private static final int DISTANCE_TIME = 1000;//兩次點擊時間間隔
public static boolean isFastClick() {
boolean flag = true;
long currentClickTime = System.currentTimeMillis();
if ((currentClickTime - lastClickTime) >= DISTANCE_TIME) {
flag = false;
}
lastClickTime = currentClickTime;
return flag;
}
平時用的話也沒啥問題,但是今天遇到一個問題——點擊事件失效了
這個方法不能重複調用
if(isFastClick){}
if(isFastClick){}
//調用了兩次就失效了
爲什麼會失效呢?其實很簡單,lastClickTime是靜態變量,第一個if的lastClickTime被修改成了本次點擊的時刻,所以第二個if語句lastClickTime和點擊時刻是一樣的,自然間隔小於1s,被認爲是快速點擊了,所以被排除掉了
希望大家平時開發的時候注意避免這個坑~