使用mvp模式,rxjava tolist后不走了

Android 码拜 8年前 (2017-04-29) 2028次浏览
只会走到log的333333333这边,然后通过tolist转成list<String>形式,就不往下走了,假如去掉tolist,可以执行subscribe.
只是本人需要先将数据转成需要的List集合,再执行subscribe

mModel.getAllSearchHistoryCache().filter(new Func1<RealmResults<SearchHistoryBean>, Boolean>() {
            @Override
            public Boolean call(RealmResults<SearchHistoryBean> searchHistoryBeen) {
                Logger.e("111111111");
                return searchHistoryBeen.isLoaded();
            }
        }).flatMap(new Func1<RealmResults<SearchHistoryBean>, Observable<SearchHistoryBean>>() {
            @Override
            public Observable<SearchHistoryBean> call(RealmResults<SearchHistoryBean> searchHistoryBeen) {
                Logger.e("2222222222");
                return Observable.from(searchHistoryBeen);
            }
        }).map(new Func1<SearchHistoryBean, String>() {
            @Override
            public String call(SearchHistoryBean searchHistoryBean) {
                Logger.e("3333333333");
                return searchHistoryBean.getKeyWord();
            }
        }).toList().observeOn(AndroidSchedulers.mainThread()).subscribe(new Subscriber<List<String>>() {
            @Override
            public void onCompleted() {
                Logger.e("onCompleted");
            }
            @Override
            public void onError(Throwable e) {
                Logger.e("onError");
            }
            @Override
            public void onNext(List<String> strings) {
                Logger.e("strings:"+strings);
                mView.showSearchHistoryList(strings);
            }
        });
解决方案

20

也没报错咯
那么 不执行么 只能说明 toList 出来的  里面的 元素 是0个

10

引用:
Quote: 引用:

也没报错咯
那么 不执行么 只能说明 toList 出来的  里面的 元素 是0个

数据库是有数据的,只是不清楚为什么去掉tolist就可以用,然后加上tolist,就不往后执行了

你 tolist 后 mModel 变成 list 了 所以就不能执行 observeOn 了。

10

.toList执行后,,   返回的东西 看看
是不是里面没数据

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明使用mvp模式,rxjava tolist后不走了
喜欢 (0)
[1034331897@qq.com]
分享 (0)