Rx java 重置事件的可观察间隔时间

Rx java 重置事件的可观察间隔时间,rx-java,rx-java2,Rx Java,Rx Java2,一旦我得到一个事件,我就开始观察 Observable.interval(0, 5, TimeUnit.SECONDS) .subscribeOn(Schedulers.io()) .subscribe() 现在,当另一个事件发生时,我想将间隔重置为0。 我如何才能做到这一点?这取决于运行此间隔的环境 例如,当出现新事件时,您可以使用并不断替换内容(从而处理旧内容): final SerialDisposable interval

一旦我得到一个事件,我就开始观察

Observable.interval(0, 5, TimeUnit.SECONDS)
                .subscribeOn(Schedulers.io())
                .subscribe()
现在,当另一个事件发生时,我想将间隔重置为0。
我如何才能做到这一点?

这取决于运行此间隔的环境

例如,当出现新事件时,您可以使用并不断替换内容(从而处理旧内容):

final SerialDisposable interval=new SerialDisposable();
public void onEvent(){
间隔集(
可观察的.interval(0,5,TimeUnit.SECONDS,Schedulers.io())
.订阅(/*…*/)
);
}
或者,如果您有一个可观察的事件源
,您可以只应用:

PublishSubject事件源=PublishSubject.create();
eventSource.switchMap(事件->
Observable.Observable.interval(0,5,TimeUnit.SECONDS,Schedulers.io())
)
.认购(/*…*/);

在Android环境中运行