【Android】java代码实现避免高频率点击的方法

代码核心

import android.os.SystemClock;
import android.view.ViewConfiguration;

/**
 * 防快速点击
 */
public class CheckDoubleClick {

    private static long lastClickTime = 0;

    public static boolean isFastDoubleClick() {
        long time = getBoostTimeMillis();
        long timeD = time - lastClickTime;
        if (0 < timeD && timeD < ViewConfiguration.getLongPressTimeout()) {
            return true;
        }
        lastClickTime = time;
        return false;
    }

    private static long lastClickTime2 = 0;

    public static boolean isFastDoubleClick(long l) {
        long time = getBoostTimeMillis();
        long timeD = time - lastClickTime2;
        if (0 < timeD && timeD < l) {
            return true;
        }
        lastClickTime2 = time;
        return false;
    }

    /**
     * 使用开机计时
     * 替代System.currentTimeMillis()
     * 可以防止修改手机时间导致判断时间间隔不对
     * @return
     */
    public static long getBoostTimeMillis() {
        return SystemClock.elapsedRealtime();
    }

}

使用方式

 mIvHalfbd.setOnClickListener(view -> {
            //防止频繁点击
            if (CheckDoubleClick.isFastDoubleClick(3000)) {
                ToastUtil.showToast(R.string.don_not_fast_double_click_during_3_second);
                mIvHalfbd.setChecked(false);
            } else {
                changeMode(HALF_BODY_MODE);
            }
        });
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值