Android 防止过快(多次)点击的实现方法

 更新时间:2018年05月08日 13:33:41   作者:loading  
很多用户经常会出现过快且多次点击同一按钮的情况,本篇文章主要介绍了Android 防止过快点击的实现方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

在用户使用 Android 应用的时候,经常会出现过快且多次点击同一按钮的情况,一方面这是因为应用或手机当前有些卡顿,另一方面也可能是由于很多应用并没有设置按钮点击时的 selector 或者其它按钮响应方式(例如点击按钮时按钮放大,常见于游戏),导致用户误认为没有点击到当前按钮,当然,除了相对应的对应用进行优化和设置点击selector以外,我们还可以做一些其它的工作,例如,判断按钮的 onClick 事件在规定事件段内只响应一次(在论坛的搜索功能中,我们常见到每10秒才可以进行一次搜索的设置,这就在一定程度上减少了无效的网络访问量,减轻服务器压力,APP同理),就如下面代码所示:

public final class AppUtils {
  private AppUtils() {

  }

  private static long mLastClickTime;// 用户判断多次点击的时间

  public static boolean isFastDoubleClick() {
    long time = System.currentTimeMillis();
    if (Math.abs(time - mLastClickTime) < 500) {
      return true;
    }
    mLastClickTime = time;
    return false;
  }
}

btn.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {
        if (AppUtils.isFastDoubleClick()){
          // 进行点击事件后的逻辑操作
        }
      }
    });

另一种方式。。。。 新建一个onclicklistener

public abstract class OnMultiClickListener implements View.OnClickListener{
  // 两次点击按钮之间的点击间隔不能少于1000毫秒
  private static final int MIN_CLICK_DELAY_TIME = 1000;
  private static long lastClickTime;

  public abstract void onMultiClick(View v);

  @Override
  public void onClick(View v) {
    long curClickTime = System.currentTimeMillis();
    if((curClickTime - lastClickTime) >= MIN_CLICK_DELAY_TIME) {
      // 超过点击间隔后再将lastClickTime重置为当前点击时间
      lastClickTime = curClickTime;
      onMultiClick(v);
    }
  }
}
btn.setOnClickListener(new OnMultiClickListener() {
      @Override
      public void onMultiClick(View v) {
        // 进行点击事件后的逻辑操作
      }
    });

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Android M(6.x)使用OkHttp包解析和发送JSON请求的教程

    Android M(6.x)使用OkHttp包解析和发送JSON请求的教程

    Android 6.0采用的SPDY支持HTTP上GZIP压缩的传输,这使得OkHttp包的功能能够进一步被利用,本文我们来总结一下Android M(6.0)使用OkHttp包解析和发送JSON请求的教程
    2016-07-07
  • Android深入分析属性动画源码

    Android深入分析属性动画源码

    这篇文章主要给大家介绍了关于Android动画系列教程之属性动画的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • 打飞机游戏终极BOSS Android实战打飞机游戏完结篇

    打飞机游戏终极BOSS Android实战打飞机游戏完结篇

    打飞机游戏终极BOSS,Android实战打飞机游戏完结篇,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-07-07
  • Android基于google Zxing实现各类二维码扫描效果

    Android基于google Zxing实现各类二维码扫描效果

    这篇文章主要介绍了Android基于google Zxing实现各类二维码扫描效果的相关资料,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-02-02
  • Flutter实现可以缩放拖拽的图片示例代码

    Flutter实现可以缩放拖拽的图片示例代码

    这篇文章主要给大家介绍了关于利用Flutter实现可以缩放拖拽的图片的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Flutter具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-06-06
  • flutter中的JSON和序列化方法及使用详解

    flutter中的JSON和序列化方法及使用详解

    这篇文章主要为大家介绍了flutter中的JSON和序列化方法及使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-01-01
  • Android ImageView 固定宽高比例的实现方法

    Android ImageView 固定宽高比例的实现方法

    这篇文章主要介绍了Android ImageView 固定宽高比例的实现方法的相关资料,,方法一:设置 adjustViewBounds="true",方法二:使用 Universal-Image-Loader 图片缓存类,需要注意的是方法二和方法一同时使用导致设置无效,需要的朋友可以参考下
    2017-07-07
  • Android扩大View点击范围的方法

    Android扩大View点击范围的方法

    Android4.0设计规定的有效可触摸的UI元素标准是48dp,转化为一个物理尺寸约为9毫米。7~10毫米,这是一个用户手指能准确并且舒适触摸的区域。本文将介绍Android扩大View点击范围的方法
    2021-05-05
  • Android BadTokenException异常解决案例详解

    Android BadTokenException异常解决案例详解

    这篇文章主要介绍了Android BadTokenException异常详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2021-08-08
  • Android开发教程之ContentProvider数据存储

    Android开发教程之ContentProvider数据存储

    这篇文章主要介绍了Android开发教程之ContentProvider数据存储的相关资料,需要的朋友可以参考下
    2016-12-12

最新评论