Android防止快速重複點擊請注意~

一般我們項目中都會有一個工具方法是用來防止按鈕重複點擊的:

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,被認爲是快速點擊了,所以被排除掉了

希望大家平時開發的時候注意避免這個坑~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章