我的Android应用程序中包含以下代码,试图防止多次单击按钮:
RxView.clicks(bSubmit)
.debounce(2500, TimeUnit.MILLISECONDS)
.observeOn(AndroidSchedulers.mainThread())
.subscribe(c -> displayToast());
但是此代码的作用是,在执行防抖时间跨度之后执行命令,而不是执行代码,然后阻止在同一时间跨度中执行多次单击。
我怎样才能实现自己想要的?
根据Reactivex.io文档,debounce
在时间窗口内发出最后一个事件。
您想要的是在一个时间窗口内发出第一个事件,该事件会做什么throttleFirst
(请参阅文档)。
RxView.clicks(bSubmit)
.throttleFirst(2500, TimeUnit.MILLISECONDS)
.observeOn(AndroidSchedulers.mainThread())
.subscribe(c -> displayToast());
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句