gpt4 book ai didi

java - 在 5 秒计时器 RXJava 上设置可观察值

转载 作者:行者123 更新时间:2023-12-02 11:47:45 26 4
gpt4 key购买 nike

我正在使用 RXJava 2 来执行操作。我希望该操作每 5 秒发生一次。然而在介绍interval之后方法它改变了我的功能并破坏了我的 .subscribe(DisponsableObserver<Boolean>)

mObserver = getObserver();              //return DisponsableObserver<Boolean>
observable = getSolultionObservable(); //return Observer<Boolean>

observable.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.interval(5, TimeUnit.SECONDS)
.subscribe(mSolutionObserver); //Now Produces Cannot Resolve Method error

如何在计时器上成功运行我的可观察对象并返回 boolean 值?

最佳答案

您可以使用 flatMap 运算符将 interval 每 5 秒发出的项目 (long) 转换为您的 可观察

Observable.interval(5, TimeUnit.SECONDS) 
.flatMap(long -> observable)
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(mSolutionObserver);

编辑:没有 lambda 表达式:

Observable.interval(5, TimeUnit.SECONDS) 
.flatMap(new Function<Long, ObservableSource<Boolean>>() {
@Override
public ObservableSource<Boolean> apply(Long aLong) throws Exception {
return observable;
}
})
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(mSolutionObserver);

关于java - 在 5 秒计时器 RXJava 上设置可观察值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48085582/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com