使用 retrofit 和 rxjava 重复调用 API

Repeatedly make API call with retrofit and rxjava

我有一个可观察的改造:

@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 表达式感到抱歉。