java - 使用 retrofit 和 rxjava 重复调用 API

标签 java android retrofit rx-java retrofit2

我有一个可观察的改造:

@GET("something/")
Observable<Something> getSomething();

订阅它会给出响应。

getSomething().subscribe(new Subscriber<Something>() {
            @Override
            public void onCompleted() {
            }

            @Override
            public void onError(Throwable e) {
            }

            @Override
            public void onNext(Something something) {
                //update database of something
            }
        });

我怎样才能每 60 秒进行一次此调用,以便我可以相应地更新数据库?

最佳答案

首先,如果可以避免,请不要这样做。最好推送更改(例如 GCM)而不是拉取以节省电池和数据。

为此,您可以结合使用 Observable.intervalObservable.repeat 运算符。

Observable.interval(60, TimeUnit.SECONDS)
    .flatMap(n -> getSomething())
    .repeat()
    .subscribe();

抱歉关于 lambda 的问题。

关于java - 使用 retrofit 和 rxjava 重复调用 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39309910/

相关文章:

java - 如何将任意 JSON 转换为 Java 中可用的结构

android - 多线程处理程序与 ThreadPoolExecutor

android - Appcelerator 钛 Android 推送通知 GCM 失败?

java - 使用 Retrofit 在查询参数中转义排序

java - 克服服务器程序中的阻塞写入

java - 如何在基于 MySQL 的应用程序中有效地存储用户的多个不同计数器值?

android - java.lang.verifyError : Does dalvik support overlapping bycodes? 错误

kotlin - RxJava 如何将 Rxjava 中的 Single<T> 转换为 Retrofit 中的 Call<T> 或相反转换

android - 改造2反序列化错误

java - Wildfly 禁用日志记录子系统