【发布时间】:2016-03-21 12:20:08
【问题描述】:
我正在使用 RxAndroid observable 来检索一些对象(在这种情况下为字符串)。我的服务如下所示:
public Observable<String> getRandomString() {
return Observable.create(new Observable.OnSubscribe<String>() {
@Override
public void call(Subscriber<? super String> subscriber) {
//code to retrieve result
subscriber.onNext("this is a string");
subscriber.onCompleted();
}
});
}
我订阅了我的演示者并将结果发布到视图:
public void loadRandomString() {
Observable<String> observable = mService.getRandomString();
observable
.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(Schedulers.newThread())
.subscribe(new Subscriber<String>() {
@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 年的旧解决方案,但此时很多代码已被弃用。这是否可能使用某种递归,或者我可以以更优雅的方式实现这一点?
提前致谢!
【问题讨论】:
-
是
getRandomString和getString一样吗? -
是的!为了简单起见,我更改了一些名称。
标签: android scheduled-tasks mvp rx-java rx-android