在项目中很多时候用到防抖,例如当连续点击的时候起了多个Activity等.
话不多说,直接上代码
public class AntiShakeUtils {
private static final long COLD_TIME_CLICK = 500L;
private static final long COLD_TIME_LONG_CLICK = 1500L;
private static long sLastResponseClick = 0;
public static boolean canResponseClick() {
long currentTime = SystemClock.elapsedRealtime();
return (currentTime - sLastResponseClick) >= COLD_TIME_CLICK;
}
public static void updateLastClickTime() {
sLastResponseClick = SystemClock.elapsedRealtime();
}
public static boolean canResponseLongClick() {
long currentTime = SystemClock.elapsedRealtime();
return (currentTime - sLastResponseClick) >= COLD_TIME_LONG_CLICK;
}
}
使用方式:再需要的地方执行下面代码就添加好防抖拉。
if (!AntiShakeUtils.canResponseClick()) {
return;
} else {
AntiShakeUtils.updateLastClickTime();
}