Rxjava почему не выполнил метод onNext

Я написал метод для печати вывода из 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.


person Even2015    schedule 20.06.2016    source источник


Ответы (1)


Я предполагаю, что из-за этой конкретной перегрузки flatMap вы в конечном итоге начнете накапливать много just, потому что flatMap не ограничено. Попробуйте с flatMap(f, 1) ограничить уровень параллелизма.

person akarnokd    schedule 20.06.2016
comment
Спасибо! Я меняю плоскую карту на карту, и она работает. Может быть, в этом случае мне не следует использовать плоскую карту. - person Even2015; 20.06.2016