Android【防抖操作的工具类】
16lz
2021-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 7.0上PopupWindow.showAsDropDown不起作用的解决方法
- Android --- 图片处理的方法
- android剪切圆角图片的方法
- android中数据存储的contentprovider的使用方法
- 升级android sdk到5.0,创建项目错误解决方法
- Android那些疑惑(2)-LayoutInflater中inflate方法参数的意义
- android 模拟器获取root权限的方法
- 『ANDROID』java 遍历arrayList的四种方法
- Android屏蔽home键的代码,咋摁也不响应的方法