在 5 秒定时器 RXJava 上设置一个可观察对象
Setting an observable on a 5 second timer RXJava
我正在使用 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
我怎样才能成功 运行 我在计时器上的可观察对象和 return 布尔值?
您可以使用 flatMap
运算符将 interval
每 5 秒发出的项目 (long
) 转换为您的 Observable
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);
我正在使用 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
我怎样才能成功 运行 我在计时器上的可观察对象和 return 布尔值?
您可以使用 flatMap
运算符将 interval
每 5 秒发出的项目 (long
) 转换为您的 Observable
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);