2016-08-01 24 views
-2

Ich bin neu in Rx android.i versuche, Web-Service in verschiedenen Zeitintervallen aufzurufen.Web-Service mit unterschiedlichem Zeitintervall aufrufen?

Anruf Api 4 Stunden alle 1 Minute für 30 Minuten, dann mit Rx android.if möglich lassen Sie mich alle 5 Minuten 3 Stunden und 30 Minuten

ist es möglich, wissen, wie dies zu tun?

Observable.interval(1,TimeUnit.MINUTES).takeWhile(Observable.timer(30,TimeUnit.MINUTES).concatWith(Observable.interval(5,TimeUnit.MINUTES).takeWhile(Observable.timer(30,TimeUnit.MINUTES).flatMap(new Func1<Long, Observable<?>>() { 
      @Override 
      public Observable<?> call(Long aLong) { 
       return null; 
      } 
     }).subscribe((new Observer<Object>() { 
      @Override 
      public void onCompleted() { 
       Log.e("working", "onCompleted"); 
      } 

      @Override 
      public void onError(Throwable e) { 
       Log.e("working", "onComThrowablepleted"); 
      } 

      @Override 
      public void onNext(Object o) { 
       Log.e("working", "onNext"); 

      } 
     }); 
     )) 
+0

mehr Timer wir this.I Notwendigkeit tun können, zu wissen, ist es möglich, mit Rx android .. – praj

+1

Die Antwort lautet: Ja. Es ist möglich. Hast du alles versucht **? –

+0

Nein, ich bin neu in RX android ..le Ich kenne keine Tutorial oder Beispielprojekt – praj

Antwort

2

können Sie interval verwenden takeUntil, timer und concatWith: Die Idee ist interval zu bedienen und es nach 30 Minuten aufhören, dann eine andere interval verwenden.

// 1 events per minutes 
Observable.interval(1, MINUTES) 
      // and stop it after 30 minutes 
      .takeUntil(Observable.timer(30, MINUTES)) 
      // then 1 events per 5 minutes, and stop it after 30 minutes 
      .concatWith(Observable.interval(5, MINUTES).takeUntil(Observable.timer(30, MINUTES))) 
      // perform webservice call 
      .flatMap(time -> webservice.call()) 
      .subscribe(); 
+0

lassen Sie mich mehr Erklärung darüber wissen. – praj

+0

Ich versuchte dies.aber ich denke, ich vermisse etwas think.its nicht richtig geschweifte Klammern – praj

+0

Yup. Eins) fehlte. Beispiel aktualisiert – dwursteisen