【问题标题】:RxJava and Retrofit2: android.os.NetworkOnMainThreadException [duplicate]RxJava 和 Retrofit2:android.os.NetworkOnMainThreadException [重复]
【发布时间】:2016-08-29 15:09:41
【问题描述】:

我尝试在 Observable.zip(...) 中合并几个请求,但我收到了错误 android.os.NetworkOnMainThreadException。我做错了什么?

Call<EmployeeInfo> companyInfo = apiService.employee();
    companyInfo.enqueue(new Callback<EmployeeInfo>() {
        @Override
        public void onResponse(Call<EmployeeInfo> call, Response<EmployeeInfo> response) {
            EmployeeInfo info = response.body();
            Observable.zip(
                    apiService.getOrders("https://exaple.com"),
                    apiService.getOrders("https://exaple.com"),
                    apiService.getOrders("https://exaple.com"),
                    apiService.companyInfo("1"), new Func4<Orders, Orders, Orders, CompanyInfo, OrdersDataWrapper>() {
                        @Override
                        public OrdersDataWrapper call(Orders currentOrders, Orders waitingOrders, Orders enterOrders, CompanyInfo companyInfo) {
                            OrdersDataWrapper data = new OrdersDataWrapper();
                            return data;
                        }
                    }).onErrorReturn(new Func1<Throwable, OrdersDataWrapper>() {
                @Override
                public OrdersDataWrapper call(Throwable throwable) {
                    return null;
                }
            })
                    .observeOn(AndroidSchedulers.mainThread())
                    .subscribe(new Action1<OrdersDataWrapper>() {
                        @Override
                        public void call(OrdersDataWrapper alDataWrapper) {
                        }
                    });
        }

        @Override
        public void onFailure(Call<EmployeeInfo> call, Throwable t) {
        }
    });

【问题讨论】:

  • 你错过了订阅

标签: android rx-java retrofit2


【解决方案1】:

您正在设置 .observeOn,但没有设置 .subscribeOn,因此 RxJava 在主线程上订阅和观察。添加 .subscribeOn(Schedulers.io()) 以便在后台线程上执行调用。

【讨论】:

    猜你喜欢
    • 2016-03-24
    • 2014-01-08
    • 2016-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-20
    • 2013-10-16
    • 2013-05-02
    相关资源
    最近更新 更多