【问题标题】:Call web service with different time interval?以不同的时间间隔调用网络服务?
【发布时间】:2016-08-01 12:30:50
【问题描述】:

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

每 1 分钟调用 Api 4 小时,持续 30 分钟,然后每 5 分钟调用一次,持续 3 小时 30 分钟

是否可以使用 Rx android。如果可能的话,请告诉我该怎么做?

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

            }
        });
        ))

【问题讨论】:

  • 使用多个计时器我们可以做到这一点。我需要知道 Rx android 是否有可能..
  • 答案是:是的。这是可能的。您尝试过任何方法吗?
  • 不,我是 rx android 的新手 ..让我知道任何教程或示例项目

标签: android timer rx-java rx-android


【解决方案1】:

您可以使用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();

【讨论】:

  • 让我知道更多关于这个的解释。
  • 我试过这个。但我想我错过了一些想法。它没有正确闭合大括号
  • Observable类型中的方法takeWhile(Func1 super Long,Boolean>)不适用于参数(Observable)
  • 因为我在文中写了takeUntil,但在代码中使用了takeWhile。另一个错误。
猜你喜欢
  • 1970-01-01
  • 2015-08-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多