Linjjmumu 2020-04-17 11:42 采纳率: 0%
浏览 340
已结题

Rxjava2 +retrofit2 的异步网络访问,网络请求没有完毕,就已经回传到了view层的值都是空的,求大神指教一下

1.RxScheduler

public class RxScheduler {

/**
 * 统一线程处理
 *
 * @param <T> 指定的泛型类型
 * @return FlowableTransformer
 */
public static <T> FlowableTransformer<T, T> Flo_io_main() {
    return new FlowableTransformer<T, T>() {
        @Override
        public Publisher<T> apply(@NonNull Flowable<T> upstream) {
            return upstream.subscribeOn(Schedulers.io())
                    .observeOn(AndroidSchedulers.mainThread());
        }
    };
}

/**
 * 统一线程处理
 *
 * @param <T> 指定的泛型类型
 * @return ObservableTransformer
 */
public static <T> ObservableTransformer<T, T> Obs_io_main() {
    return new ObservableTransformer<T, T>() {
        @Override
        public ObservableSource<T> apply(Observable<T> upstream) {
            return upstream.subscribeOn(Schedulers.io())
                    .observeOn(AndroidSchedulers.mainThread());
        }
    };
}

}

2.在presenter中写的逻辑
registerModule.getCode(requestBody)
.compose(RxScheduler.Obs_io_main())
.as(mView.bindAutoDispose())
.subscribe(new Observer() {
@Override
public void onSubscribe(Disposable d) {

                }

                @Override
                public void onNext(BaseObjectBean baseObjectBean) {
                    mView.onSuccess(baseObjectBean);
                    mView.hideLoading();
                }

                @Override
                public void onError(Throwable e) {
                    mView.onError(e);
                    mView.hideLoading();
                }

                @Override
                public void onComplete() {

                }
            });

3.在view里面的回调 code永远是0,还Toast了 null 但是日志已经显示请求成功了,

@Override
public void onSuccess(BaseObjectBean bean) {
    if(bean.getCode()==200){

        ToastUtils.showToast("发送成功");
    }else {
        ToastUtils.showToast(bean.getMsg()+"");

    }


}
  • 写回答

1条回答 默认 最新

  • 键盘舞者113 博客专家认证 2020-04-17 11:46
    关注

    你把代码发我,调试一下

    评论

报告相同问题?

悬赏问题

  • ¥50 求恶意流量检测系统搭建教程( C++ python C)
  • ¥15 mmseqs内存报错
  • ¥15 vika文档如何与obsidian同步
  • ¥15 华为手机相册里面的照片能够替换成自己想要的照片吗?
  • ¥15 陆空双模式无人机飞控设置
  • ¥15 sentaurus lithography
  • ¥100 求抖音ck号 或者提ck教程
  • ¥15 关于#linux#的问题:子进程1等待子进程A、B退出后退出(语言-c语言)
  • ¥20 web页面如何打开Outlook 365的全球离线通讯簿功能
  • ¥15 io.jsonwebtoken.security.Keys