Rxjava为什么没有执行onNext方法

时间:2016-06-20 08:49:42

标签: android rx-java reactive-programming rx-android

我写了一个方法来打印flatMap(伪代码)的输出:

Observable.just(...).repeat()
    .flatMap( return Observable.just([double]))
    .subscribeOn(Schedulers.io())
    .observeOn(AndroidSchedulers.mainThread())
    .subscribe(new Subscriber<Double>() {
        @Override
        public void onCompleted() {

        }

        @Override
        public void onError(Throwable e) {
            tvConfidence.setText(e.getMessage());
        }

        @Override
        public void onNext(Double aDouble) {
            tvConfidence.setText("Confidence :" + aDouble);
        }
    });

当我运行这些代码时,它会工作几秒钟,但几秒钟后,它将不会再次运行到onNext方法。我不知道为什么,因为我调试代码,它将运行Observable.just(double),并且值始终更改,但它不会执行代码setText来刷新textView。< / p>

1 个答案:

答案 0 :(得分:1)

我的猜测是,由于特定的flatMap重载,您最终会开始积累大量just,因为flatMap是无限制的。尝试使用flatMap(f, 1)来限制并发级别。