美文网首页Android开发Android开发经验谈Android进阶之路
Android 无入侵解决按钮重复点击---onClick处理&

Android 无入侵解决按钮重复点击---onClick处理&

作者: liys_android | 来源:发表于2019-08-22 21:52 被阅读51次

    Android 按钮重复点击处理<一行代码解决>

    一. 介绍

    问题描述: 用户快速连续点击按钮时, 容易引发各种问题.
    网上解决方案: Android优雅地处理按钮重复点击

    这篇文章是2018年9月份发的, 300多个赞, 而且综合比较了各种解决方案, 文章中使用AOP+注解的方式处理, 也算是不错的解决方案,

    发现问题: 代码还是存在入侵的现象, 虽然只是一个注解, 但是需要在项目的每个onClick加上注解@SingleClick, 如果是已经上线的项目, 需要全局修改, 说不定会漏掉一部分.

    解决办法: 利用Hook技术, 这里我把解决方法封装成开源库了.
    github地址: https://github.com/liys666666/DoubleClick

    框架主要有两个功能:
    1.无入侵解决按钮重复点击 (本章内容)
    2.onClick重复逻辑统一处理

    二. 框架的使用

    1. 简单使用

    ① 导入框架

    //项目根目录下,build.gradle
    allprojects {
            repositories {
                ...
                maven { url 'https://jitpack.io' }  //添加
            }
        }
    
    //app目录下build.gradle
    dependencies {
        implementation 'com.github.liys666666:DoubleClick:V1.0.1'  //添加
    }
    

    ② 自定义的Application初始化即可

    public class AppApplication extends Application{
    
        @Override
        public void onCreate() {
            super.onCreate();
    
            ViewDoubleHelper.init(this); //默认时间:1秒
    //        ViewDoubleHelper.init(this, 2000); //自定义点击间隔时间(单位:毫秒)
        }
    }
    

    如果不需要其它的功能, 到这里就解决了.

    2. 如果某个Activity里不需要处理重复点击事件, 怎么办?

    解决办法: 让对应的Activity 实现 DoubleClickCancel接口即可.

    3. 特殊要求: 只有一部分按钮需要处理重复点击, 怎么办?

    用以下方法, 可以自由添加或取消某个View, 如果控件比较多, 可以写成数组, 然后循环处理

            //取消hook事件
            ViewDoubleHelper.cancelHookView(R.id.btn1);
            ViewDoubleHelper.cancelHookView(findViewById(R.id.btn1));
            //添加hook事件
            ViewDoubleHelper.hookResView(R.id.btn2);
            ViewDoubleHelper.hookResView(R.id.btn2, 2000); //自定义时间(单位: 毫秒)
            ViewDoubleHelper.hookView(findViewById(R.id.btn2));
            ViewDoubleHelper.hookView(findViewById(R.id.btn2), 2000); //自定义时间(毫秒)
    

    优点:

    1. 没有入侵原来的代码, 普通的要求一行代码就能解决.
    2. 可以随时增加或删除, 可以局部也可以全部, 不会影响原来的代码.
    3. 对于有特殊要求的, 也可以单个自定义间隔时间.

    到这里就结束了, 希望能帮到有需要的人, 如果觉得好用, 欢迎Start.

    技术有限, 如果框架中存在什么问题, 欢迎在下载评论区留言.

    相关文章

      网友评论

        本文标题:Android 无入侵解决按钮重复点击---onClick处理&

        本文链接:https://www.haomeiwen.com/subject/zawosctx.html