Android,判断是否快速点击

这篇具有很好参考价值的文章主要介绍了Android,判断是否快速点击。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

问题背景

在Android控件中,如果快速点击容易造成一些不同的bug,尤其是那种在click事件中方有耗时操作的代码,容易引起anr,并且有些性能低的机器,在用户点击多次控件的时候很容易出现问题,在车机中也会导致回弹的一系列问题(这里面包括get到的信号导致回弹),针对于这种情况需要做控件快速点击的保护方案。

核心实现

判断用户是否快速点击,主要还是和一个时间阈值作对比,比如用户在500ms内快速点击某个控件,但是我们又不希望控件做出反应,核心代码如下:文章来源地址https://www.toymoban.com/news/detail-860414.html

import android.os.SystemClock;






/**
 * view fast click deal.
 * * <br>
 */
public class FastClickUtil {

    private static long sLastClickTime = 0;
    private static final long MIN_DELAY_TIME = 500;
    private static long mFirstTime = 0;
    private static int mLastBtn = 0;

    /**
     * isFastClick.
     * @return true fast click.
     */
    public static boolean isFastClick() {
        long time = SystemClock.uptimeMillis();
        long timeD = time - sLastClickTime;
        if (0 < timeD && timeD < MIN_DELAY_TIME) {
            return true;
        } else {
            sLastClickTime = time;
            return false;
        }
    }

    /**
     * Is or not fast click function.
     * @param btnId view id.
     * @return true is, false is not
     */
    public static boolean isFastClick(int btnId) {
        long time = SystemClock.elapsedRealtime();
        long timeD = time - mFirstTime;
        if (mLastBtn == btnId && 0 < timeD && timeD < MIN_DELAY_TIME) {
            return true;
        } else {
            mLastBtn = btnId;
            mFirstTime = time;
            return false;
        }
    }

}

到了这里,关于Android,判断是否快速点击的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android Glide判断图像资源是否缓存onlyRetrieveFromCache,使用缓存数据,Kotlin

    本文详细介绍了如何在Android开发中使用Glide库和Kotlin语言处理图像缓存。包括判断图像资源是否已缓存,以及如何只从缓存中加载图像。

    2024年02月08日
    浏览(48)
  • Android深思如何防止快速点击

    其实快速点击是个很好解决的问题,但是如何优雅的去解决确是一个难题,本文主要是记录一些本人通过解决快速点击的过程中脑海里浮现的一些对这个问题的深思。 作者:流浪汉kylin 链接:https://juejin.cn/post/7197337416096055351 可以通过AOP来解决这个问题,而且AOP解决的方法也

    2024年02月10日
    浏览(30)
  • uniapp 移动端app判断用户app版本是否是最新版(Android)

    1.在uniapp项目中的App.vue文件下 2. 具体实现代码 ios的话自行给提示 去应用商店下载

    2024年01月20日
    浏览(42)
  • 【Android】【root & remount 】【1】java中如何判断设备是否在root状态

    前言 客户需求,需要判断设备是否执在root状态。可以理解为是否执行了adb root 设置root状态,已经adb unroot设置unroot状态。 代码分析 分析adb deamon发现:在执行adb root 、adb unroot指令时,系统会更新service.adb.root 变量。 实现 系统应用可以通过SystemProperties get ”service.adb.root“ v

    2024年04月16日
    浏览(36)
  • 一起Talk Android吧(第五百四十六回:如何判断手机是否安装GooglePlay)

    各位看官们大家好,上一回中咱们说的例子是\\\"如何实现流水动画\\\",本章回中介绍的例子是\\\" 如何判断手机是否安装GooglePlay \\\"。闲话休提,言归正转,让我们一起Talk Android吧! 我们在这里说的 GooglePlay 就是Google的应用市场,它本质上也是应用程序,只是在国内无法使用,因此部

    2024年02月09日
    浏览(39)
  • unity判断是否点击到某个按钮

          1、 适应场景:当点击到界面其他地方,这个按钮不再突出显示,怎么解决? private void Update()     {         if (Input.GetMouseButtonDown(0))         {             if (EventSystem.current.currentSelectedGameObject == null || EventSystem.current.currentSelectedGameObject.name != \\\"ButtonName\\\")          

    2024年02月11日
    浏览(31)
  • matplotlib 判断鼠标是否点击在当前线上

    在开发中有一个需求:对生成的一条线进行拖拽。 我将这个方法实现在线所在的类里,这个过程中需要判断鼠标是否点击在当前线上,从而实现拖拽。 实现代码如下: 但是经过测试,无论在没在线上点击鼠标,得到的结果都是True 后来经过查资料得知,正确的写法应为: 这

    2024年02月13日
    浏览(32)
  • 【如何快速判断矩阵是否相似对角化】

    关于如何快速判断矩阵是否可以相似对角化的方法 原理 :

    2024年02月13日
    浏览(44)
  • 如何快速判断GitLab 是否出现 OOM

    查看系统日志: 使用 dmesg 命令来查看系统日志,搜索 Out of memory : 如果输出结果中包含 Out of memory 或 oom-killer 等,则表示系统出现了 OOM。 查看 GitLab 日志: 使用 tail 命令查看 GitLab 进程的日志文件,例如 Unicorn 或 Sidekiq 的日志文件: 如果日志文件中包含 Out

    2024年02月06日
    浏览(86)
  • uniapp微信小程序:点击按钮先判断用户是否授权位置信息、用户位置信息授权、进入下一个页面

    前提 :该实例是使用uniapp的小程序 实现的 文章描述: 这里要实现的功能是: 1、点击页面中的一个按钮 2、判断用户是否授权位置信息 3、未授权–弹出位置授权框;已授权–进入下一个页面(地址选择页); 4、弹出位置授权框后,是否同意授权 5、同意:得到地址;不同

    2024年02月08日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包