toList()方法什么都不发出

时间:2019-07-13 08:26:34

标签: android rx-java

我有这样的方法

Date date = new Date();
    mAppDatabase.getWeatherDao().getAllDatabyCity(city)
            .subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .flatMap(new Function<List<Weather>, ObservableSource<Weather>>() {
                @Override
                public ObservableSource<Weather> apply(List<Weather> weathers) throws Exception {
                    return Observable.fromIterable(weathers);
                }
            })
            .filter(new Predicate<Weather>() {
                @Override
                public boolean test(Weather weather) throws Exception {
                    Date date1 = new SimpleDateFormat("yyyy-MM-dd").parse(weather.getDate());
                    return date1.after(date);
                }
            })
            .toList()
            .subscribe(new SingleObserver<List<Weather>>() {
                @Override
                public void onSuccess(List<Weather> weathers) {
                    Log.i(Const.LOG, "weathers.size " + weathers.size()); ------------ nothing show

                });

方法toList不发出任何东西。当我删除toList并写上这个

 @Override
                public void onNext(Weather weather) {
                    Log.i(Const.LOG, " " + weather.getName());

一切顺利,发出所有通过测试的元素 但我想接收包含元素的列表 我该如何解决?

0 个答案:

没有答案