我的Android应用中有以下代码,试图阻止多次点击按钮:
RxView.clicks(bSubmit)
.debounce(2500, TimeUnit.MILLISECONDS)
.observeOn(AndroidSchedulers.mainThread())
.subscribe(c -> displayToast());
但不是执行代码,而是防止在同一时间段内多次点击被执行, 这个代码的作用是,它在去抖时间跨度过后执行命令。
我如何实现我的目标?
答案 0 :(得分:4)
根据Reactivex.io documentation,debounce
会在时间窗口内发出最后一个事件。
你想要的是在一个时间窗口内发出第一个事件,throttleFirst
是什么(见documentation)。
RxView.clicks(bSubmit)
.throttleFirst(2500, TimeUnit.MILLISECONDS)
.observeOn(AndroidSchedulers.mainThread())
.subscribe(c -> displayToast());