我正在使用Rx
Android observable来检索一些对象(在本例中为String).我的服务如下:
public Observable getRandomString() {
return Observable.create(new Observable.OnSubscribe() {
@Override
public void call(Subscriber super String> subscriber) {
//code to retrieve result
subscriber.onNext("this is a string");
subscriber.onCompleted();
}
});
}
我在演示者中订阅并将结果发布到视图中:
public void loadRandomString() {
Observable observable = mService.getRandomString();
observable
.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(Schedulers.newThread())
.subscribe(new Subscriber() {
@Override
public void onCompleted() { }
@Override
public void onError(Throwable e) {
mMainView.onError(e.getLocalizedMessage());
}
@Override
public void onNext(String string) {
//do something with string
}
});
}
这工作正常,但我希望这个操作定期(每隔x分钟).我可以使用Timer或ScheduledThreadPoolExecutor一遍又一遍地执行此操作,但我想看看是否在RxAndroid领域内有一些解决方案.我从2013年发现了一些旧的解决方案,但目前很多代码都被弃用了.这可能是使用某种递归,还是我能以更优雅的方式实现这一点?
提前致谢!