RxJava Scheduler.Worker schedule订阅Observable的操作

时间:2018-06-15 10:26:22

标签: rx-java reactive-programming

我安排Action0触发我要订阅的功能。目前,除了致电toBlocking().single()之外,我无法想到更好的方法。更重要的是,我还想在完成后再次安排Action0

必须有一种更惯用的方式来做到这一点。如果不处理Subscription返回的.schedule(),我是否也会对内存泄漏敞开心扉?

worker.schedule(new Action0() {
        @Override
        public void call() {
            try {
                consumer.doSomething().toBlocking().single();
            } finally {
                worker.schedule(this);
            }
        }
});

FWIW我坚持使用RxJava 1.

1 个答案:

答案 0 :(得分:1)

在RxJava世界中,您可能不希望使用显式schedule()操作。

完成描述的更好方法:

Observable.fromCallable( consumer.doSomething() )
  .repeat()
  .subscribeOn( scheduler )
  .subscribe();

这会一遍又一遍地调用doSomething(),忽略输出。调用完成后,repeat运算符将重新订阅。