根据值对rx进行反跳

Ala*_*lan 4 reactive-programming rx-java rx-android

如果客户端断开连接(false)超过10秒钟,我想显示一个弹出窗口。但是,当连接重新获得时,我也将关闭弹出窗口(true)。如果需要,我需要立即将弹出窗口关闭。

我认为我需要做的是根据值(false)进行反跳,但我不确定。

mConnectionObservable
.distinctUntilChanged()
.debounce(10, TimeUnit.SECONDS)
.subscribe(online -> {
    if (online) {
        //Dismiss popup
    } else {
        //Show popup about internet connection
    }
});
Run Code Online (Sandbox Code Playgroud)

Joh*_*wUs 6

你可以试试

mConnectionObservable.debounce(item -> (item? Observable.empty() : Observable.timer(10,TimeUnit.SECONDS)))
                     .distinctUntilChanged()
Run Code Online (Sandbox Code Playgroud)

这会动态更改反跳周期,以便始终发出一个真值,而具有10秒去抖的假值。