防抖
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;
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/2831.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...