Android防暴力(多次)点击,亲测可直接使用

方法一:使用 RxJava 的 throttleFirst()

/** * 防止重复点击 *  * @param target *            目标view * @param listener *            监听器 */public static void preventRepeatedClick(final View target,final View.OnClickListener listener) {RxView.clicks(target).throttleFirst(1, TimeUnit.SECONDS).subscribe(new Observer<Object>() {@Overridepublic void onSubscribe(Disposable d) {}@Overridepublic void onNext(Object o) {listener.onClick(target);}@Overridepublic void onError(Throwable e) {}@Overridepublic void onComplete() {}});}

方法二:工具类,用于判断是否快速点击

public class ClickUtil {/** * 两次点击按钮之间的点击间隔不能少于1000毫秒 */private static final int MIN_CLICK_DELAY_TIME = 1000;/** * 最后一次点击的时间 */private static long mLastClickTime = -1;/** * 是否为快速点击 *  * @return true:快速点击  false:非快速点击 */public static boolean isFastClick() {boolean flag;long curClickTime = System.currentTimeMillis();if (curClickTime - mLastClickTime > MIN_CLICK_DELAY_TIME) {flag = false;} else {flag = true;}mLastClickTime = curClickTime;return flag;}}

工具类方法调用如下:

//多次点击直接返回if (ClickUtil.isFastClick()) {return;}

更多相关文章

  1. 浅谈Java中Collections.sort对List排序的两种方法
  2. Python list sort方法的具体使用
  3. python list.sort()根据多个关键字排序的方法实现
  4. Android缩放动画
  5. Android实现点击两次返回键退出
  6. Android(安卓)SDK下载和更新失败的解决方法
  7. 818
  8. Android(安卓)AM命令行启动程序的方法
  9. android--系统路径获取

随机推荐

  1. 使用SQL使用从左到右和从右到左混合语言
  2. SQL Server 2005与SQL Server 2000相比性
  3. tp3.2结合mysql实现微信自定义分享链接和
  4. 统计查询-根据条件进行count的两种实现方
  5. Spring JdbcTemplate 批量插入或更新操作
  6. 多表连接查询
  7. C#使用SqlBulkCopy将DataTable写入数据库
  8. 找到另一个列至少有两个不同值的id
  9. 一条牛B的SQL抵了我300多行的程序代码
  10. hibernate查询不出结果,sql已打印,请指教