RxJava toList或者collect运算符后无法进行订阅

final Observer<List<SportCheckTaskEntity>> observer =  new Observer<List<SportCheckTaskEntity>>() {
                @Override
                public void onSubscribe(Disposable d) {

                }

                @Override
                public void onNext(List<SportCheckTaskEntity> sportCheckTaskEntities) {
                    iSportCheckTaskPresenterView.onRefreshDataSuccess(flag, sportCheckTaskEntities);
                }

                @Override
                public void onError(Throwable e) {
                    Log.i("1216", e.toString());
                }

                @Override
                public void onComplete() {

                }
            };
            sportCheckDao.querySportCheckTaskManager(userId, teamId, currentTime)
                    // 当前的类型和期望的类型
                    .flatMap(new Function<List<SportCheckTaskEntity>, ObservableSource<SportCheckTaskEntity>>() {
                        @Override
                        public ObservableSource<SportCheckTaskEntity> apply(List<SportCheckTaskEntity> sportCheckTaskEntities) throws Exception {
                            return Observable.fromIterable(sportCheckTaskEntities);
                        }
                    })
                    .flatMap(new Function<SportCheckTaskEntity, ObservableSource<SportCheckTaskEntity>>() {
                        @Override
                        public ObservableSource<SportCheckTaskEntity> apply(final SportCheckTaskEntity sportCheckTaskEntity) throws Exception {
                            return sportCheckDao.getSportCheckTaskPrepareItemCountByTaskId(sportCheckTaskEntity.getSportCheckTaskId()).map(new Function<Integer, SportCheckTaskEntity>() {
                                @Override
                                public SportCheckTaskEntity apply(Integer integer) throws Exception {
                                    sportCheckTaskEntity.setPrepareItemNumber(integer);
                                    return sportCheckTaskEntity;
                                }
                            });
                        }
                    })
                    .flatMap(new Function<SportCheckTaskEntity, ObservableSource<SportCheckTaskEntity>>() {
                        @Override
                        public ObservableSource<SportCheckTaskEntity> apply(final SportCheckTaskEntity sportCheckTaskEntity) throws Exception {
                            return sportCheckDao.getSportCheckTaskTotalItemCountByTaskId(sportCheckTaskEntity.getSportCheckTaskId()).map(new Function<Integer, SportCheckTaskEntity>() {
                                @Override
                                public SportCheckTaskEntity apply(Integer integer) throws Exception {
                                    sportCheckTaskEntity.setTotalItemNumber(integer);
                                    return sportCheckTaskEntity;
                                }
                            });
                        }
                    })
                    .subscribeOn(Schedulers.io())
                    .observeOn(AndroidSchedulers.mainThread())
                    .toList()
                    .toObservable()
                    .subscribe(observer);

第一个flatMap是用来发射单个Observable的
第二个flatMap是用来给集合中的对象添加某个值的
第二个flatMap是用来给集合中的对象添加某个值的

在这之前,都没有问题,但是在执行toList()或者collect()运算符后,后续的订阅没有执行.

网上查了原因,说是toList()运算符引起的阻塞,需要使用onComplete()方法进行调用,但是不清楚具体该如何使用