我有以下方法:
public class ParentalControlInteractor {
public Single<Boolean> isPinSet() {
return bamSdk.getPinManager().isPINSet();
}
}
我想调用这个函数运行一次,然后每分钟重复一次,直到无穷大,但这看起来很笨拙:
parentalControlInteractor.isPinSet()
.subscribeOn(Schedulers.io())
.repeat(10000)
.timeout(1600,TimeUnit.MILLISECONDS)
.doOnError(throwable -> {
Timber.e(throwable,"Error getting if Pin is set");
throwable.printStackTrace();
})
.subscribe(isPinSet -> {
this.isPinSet = isPinSet;
Timber.d("Pin is set = " + isPinSet.toString());
});
难道就没有更好的方法吗?我正在使用 RxJava2。而且,上面的方法只调用了10000次。我想永远调用它,就像使用 Handler.postDelayed() 一样。
您可以使用interval()
观察者这里是代码
DisposableObserver<Boolean> disposable =
Observable.interval(1, TimeUnit.MINUTES)
.flatMap(aLong -> isPinSet().toObservable())
.subscribeOn(Schedulers.io())
.subscribeWith({isPinSet -> doSomething()}, {throwable -> handleError()}, {});
如果您想随时完成此操作,请致电disposable.dispose()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)