【发布时间】:2015-04-15 17:08:22
【问题描述】:
我想从我的应用程序中轮询一项服务,因此我可以定期(约 15 分钟)刷新数据。但是,启动时也需要相同的数据。我正在使用 Retrofit 和 RxAndroid。
我可以轻松地立即获取网络数据(或者在调用返回时),并且我一直在努力进行这样的重复调用:
return mNetworker.getInitializationProperites(deviceId)
.observeOn(Schedulers.io()) // database i/o will need done
.subscribeOn(Schedulers.io())
.delay(20L, TimeUnit.SECONDS) // 20 seconds for testing
.repeat()
.subscribe(onNext, RxErrorHandler.handle(), onComplete);
此方法(以及其他使用timer 和interval 的方法)获得正确的时间间隔,但传递结果较晚。特别是,在上面,我知道 web 服务会立即被命中,但它会等待 20 秒才能真正发出结果。
有没有一种方法可以结合尽快获得第一个结果的想法并安排自己无限期地重复?我的另一个想法是创建两个不同的可观察对象并分别订阅它们,但似乎我错过了一些东西。
【问题讨论】: