Android Rx debounce never called

35 Views Asked by At

I try to use debounce to handle events that comes too often. In example below I just use endless timer to emulate periodic events. But debounce doesn't work and never called in my example. Does it look like I've missed something? Thanks

val slower = PublishSubject.create<Int>()

fun setup() {
      
                slower
                    .debounce(3, TimeUnit.SECONDS)
                    .observeOn(AndroidSchedulers.mainThread())
                    .subscribe {
                        Timber.d("test slower $it") //this never called
                    }.addTo(disposable)

                // run 1 sec endless timer
                Observable.interval(0, 1000, TimeUnit.MILLISECONDS)
                    .subscribeOn(AndroidSchedulers.mainThread())
                    .observeOn(AndroidSchedulers.mainThread())
                    .subscribe {
                        Timber.d("test timer 1 sec")
                        slower.onNext(1)
                    }.addTo(disposable)
        
}

build.gradle:

// RxJava
implementation 'io.reactivex.rxjava2:rxjava:2.2.10'
implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'
// RxKotlin
implementation 'io.reactivex.rxjava2:rxkotlin:2.4.0'
0

There are 0 best solutions below