Android【防抖操作的工具类】
16lz
2022-01-23
防抖
public class OneClickUtil { private String methodName; public static final int MIN_CLICK_DELAY_TIME = 1000; private long lastClickTime = 0; public OneClickUtil(String methodName) { this.methodName = methodName; } public String getMethodName() { return methodName; } public boolean check() { long currentTime = Calendar.getInstance().getTimeInMillis(); if (currentTime - lastClickTime > MIN_CLICK_DELAY_TIME) { lastClickTime = currentTime; return false; } else { return true; } }}
防抖
public class AntiShake { private List<OneClickUtil> utils = new ArrayList<>(); public boolean check(Object o) { String flag = null; if(o == null) flag = Thread.currentThread().getStackTrace()[2].getMethodName(); else flag = o.toString(); for (OneClickUtil util : utils) { if (util.getMethodName().equals(flag)) { return util.check(); } } OneClickUtil clickUtil = new OneClickUtil(flag); utils.add(clickUtil); return clickUtil.check(); } public boolean check() { return check(null); }}
注意
(1) 声明 AntiShake util = new AntiShake(); 全局变量
(2) 每个Click方法第一行加入 if (util.check()) return;
更多相关文章
- android中数据存储的contentprovider的使用方法
- android获取versionName和versionCode
- android 调用webservice
- 三步搞定:Vue.js调用Android原生操作
- Android(安卓)--- 图片处理的方法
- Android窗口机制(一)——Window,PhoneWindow,DecorView理解
- 在Android(安卓)7.0上PopupWindow.showAsDropDown不起作用的解决
- 浅谈Java中Collections.sort对List排序的两种方法
- Python list sort方法的具体使用