Android RxJava如何创建以不同延迟执行多个作业的间隔?

Android RxJava如何创建以不同延迟执行多个作业的间隔?,android,rx-java,reactive-programming,android-threading,Android,Rx Java,Reactive Programming,Android Threading,我对RxJava非常陌生,所以我的问题可能完全是愚蠢的,但我不知道如何去做 因此,我有N个作业实现以下接口 interface Worker { int interval(); void job(); } 我想要实现的是一个类似计时器的功能,它可以在每次interval()时间流逝时调用这些Workersjob()函数 到目前为止我都试过了 Observable.fromArray(worker1, worker2) .flatMap(worker -&

我对RxJava非常陌生,所以我的问题可能完全是愚蠢的,但我不知道如何去做

因此,我有N个作业实现以下接口

interface Worker {
  int interval();
  void job();
}
我想要实现的是一个类似计时器的功能,它可以在每次
interval()
时间流逝时调用这些
Worker
s
job()
函数

到目前为止我都试过了

Observable.fromArray(worker1, worker2)
                .flatMap(worker -> Observable.just(worker).delay(worker.delay(), TimeUnit.SECONDS))
                .subscribe(Worker::job);
这很好,作业是在给定的时间过后异步执行的

但这只执行了一次。我知道我需要以某种方式使用
interval()
操作符,但我无法理解它


提前感谢

如果我正确理解了您的问题,您需要这样做:

Observable.fromArray(worker1,worker2)
.flatMap{worker->
可观察的.interval(worker.interval(),TimeUnit.SECONDS)
.flatMap{Observable.just(worker.delay(),TimeUnit.SECONDS)}
}
.subscribe(Worker::job)
您应该注意到,在这个实现中,
worker.job()
调用将以意外的顺序进行