2016-09-03 7 views
3

とAPI呼び出しを行います。それに加入繰り返し私が観察改造を持って改造し、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秒ごとに行うことができるので、それに応じてデータベースを更新できますか?

答えて

5

まずは避けてください。バッテリやデータを節約するためにプルするのではなく、変更をプッシュすること(GCMなど)が望ましいです。

これを行うには、Observable.intervalObservable.repeat演算子の組み合わせを使用できます。

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

大変申し訳ございません。

+0

https://stackoverflow.com/questions/44920829/polling-to-backend-api-in-regular-interval-for-certain-number-of-times-in-a-regu場合によっては何らかの状態で終了する必要があります。感謝 – Bulu

関連する問題