RxView.debounce等待debounce执行命令的时间,我该如何立即执行命令?

时间:2016-08-09 12:27:32

标签: android rx-java rx-binding

我的Android应用中有以下代码,试图阻止多次点击按钮:

RxView.clicks(bSubmit)
            .debounce(2500, TimeUnit.MILLISECONDS)
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(c -> displayToast());

但不是执行代码,而是防止在同一时间段内多次点击被执行, 这个代码的作用是,它在去抖时间跨度过后执行命令。

我如何实现我的目标?

1 个答案:

答案 0 :(得分:4)

根据Reactivex.io documentationdebounce会在时间窗口内发出最后一个事件。

你想要的是在一个时间窗口内发出第一个事件,throttleFirst是什么(见documentation)。

RxView.clicks(bSubmit)
        .throttleFirst(2500, TimeUnit.MILLISECONDS)
        .observeOn(AndroidSchedulers.mainThread())
        .subscribe(c -> displayToast());