Android防止按钮快速重复点击

JAndroid防止按钮快速重复点击

问题发现

做android开发时很可能会遇到这样的场景:

一个Button响应点击后发起网络请求。由于当前网络情况较差等原因请求结果没有及时返回,这个按钮又被用户重复点击,或者用户故意快速点击,造成请求多次发起。

快速重复点击引起的网络请求多次发起,往往都不是我们希望看到的,会产生交互上的逻辑混乱,如果是涉及到提交订单这样的请求,还可能会对用户造成损失,所以这样的情况需要避免。

防止快速重复点击的方案很多。可以在服务端做校验,可以在客户端交互上做限制,也可以在客户端响应点击事件时做校验。其中,在客户端响应点击事件时做校验的方法,可以很方便在网上搜索到:

一、全局

public class Utils {
        // 两次点击按钮之间的点击间隔不能少于1000毫秒
        private static final int MIN_CLICK_DELAY_TIME = 1000;
        private static long lastClickTime;
     
        public static boolean isFastClick() {
            boolean flag = false;
            long curClickTime = System.currentTimeMillis();
            if ((curClickTime - lastClickTime) >= MIN_CLICK_DELAY_TIME) {
                flag = true;
            }
            lastClickTime = curClickTime;
            return flag;
        }
    }
btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (Utils.isFastClick()) {
                    // 进行点击事件后的逻辑操作
                }
            }

参考

1、https://zhuanlan.zhihu.com/p/34841081
2、https://www.cnblogs.com/dingxiansen/p/10442255.html

Guess you like

Origin blog.csdn.net/JMW1407/article/details/120184260