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自定义View实现飘动的叶子效果(三)

    Android自定义View实现飘动的叶子效果(三)

    这篇文章主要为大家详细介绍了Android自定义View实现飘动的叶子效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03
  • Android实现TextView中的部分文字实现点击跳转功能

    Android实现TextView中的部分文字实现点击跳转功能

    在移动端应用中,往往需要在一段文字中让某几个关键词或短语具备点击跳转功能,如果将整段文字放到 Button、Link 或单独的 View 中,通常会带来布局复杂、样式难以统一、可维护性差等问题,所以本文将给大家介绍Android实现TextView中的部分文字实现点击跳转功能
    2025-04-04
  • Android自定义竖排TextView实现实例

    Android自定义竖排TextView实现实例

    这篇文章主要介绍了Android自定义竖排TextView实现实例的相关资料,需要的朋友可以参考下
    2017-05-05
  • Android 标准Intent的使用详解

    Android 标准Intent的使用详解

    这篇文章主要介绍了Android 标准Intent的使用详解的相关资料,需要的朋友可以参考下
    2017-03-03
  • 简单实现Android本地音乐播放器

    简单实现Android本地音乐播放器

    这篇文章主要为大家详细介绍了如何简单实现Android本地音乐播放器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • android中图形图像处理之drawable用法分析

    android中图形图像处理之drawable用法分析

    这篇文章主要介绍了android中图形图像处理之drawable用法,较为详细的分析了Android中绘图所涉及的各种常用技巧与方法,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-10-10
  • Android进程保活之提升进程优先级

    Android进程保活之提升进程优先级

    这篇文章主要介绍了Android进程保活之提升进程优先级,对提升优先级感兴趣的同学可以参考下
    2021-04-04
  • Android中判断网络连接是否可用及监控网络状态

    Android中判断网络连接是否可用及监控网络状态

    获取网络信息需要在AndroidManifest.xml文件中加入相应的权限,接下来详细介绍Android中判断网络连接是否可用及监控网络状态,感兴趣的朋友可以参考下
    2012-12-12
  • Android Studio 利用Splash制作APP启动界面的方法

    Android Studio 利用Splash制作APP启动界面的方法

    这篇文章主要介绍了Android Studio 利用Splash制作APP启动界面,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-05-05
  • Mac Android Studio安装图文教程

    Mac Android Studio安装图文教程

    本文主要介绍了Mac Android Studio安装教程,文中通过图文代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08

最新评论