以不同的时间间隔调用网络服务?

Call web service with different time interval?

我是 Rx 的新手 android.i 我正在尝试在不同的时间间隔调用 Web 服务。

拨打 Api 4 小时,每 1 分钟通话一次,持续 30 分钟,然后每 5 分钟通话一次,持续 3 小时 30 分钟

是否可以使用 Rx android.if 可以让我知道如何做吗?

 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");

            }
        });
        ))

可以使用intervaltakeUntiltimerconcatWith : 思路是使用interval,30分钟后停止,然后使用另一个 interval.

 // 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();