使用大型json响应进行改造的最佳实践

时间:2016-10-06 01:01:10

标签: android json retrofit retrofit2

我正在使用Retrofit来调用我的API,但是数据很大,我只想在调用完成时启动另一个活动,我这样做的方式是屏幕冻结,直到请求是完成和其他活动开始,有更好的方法吗?

 Call<List<Pessoa>> callPessoa = apiService.getClientes(GlobalModel.getToken(), GlobalModel.geEmpresaId());
                Call<List<Transportadora>> callTransportadora = apiService.getTransportadoras(GlobalModel.getToken(), GlobalModel.geEmpresaId());
  callPessoa.enqueue(new Callback<List<Pessoa>>() {
                    @Override
                    public void onResponse(Call<List<Pessoa>> call, Response<List<Pessoa>> response) {
                        int statuscode = response.code();
                        if (statuscode == 200) {
                            for (int i = 0; i < response.body().size(); i++) {
                                Pessoa mPessoa = response.body().get(i);
                                mRepositorio.addCliente(mPessoa.getPessoa_id(), mPessoa.getPessoa_nome(), mPessoa.getPessoa_nome_fantasia(), mPessoa.getPessoa_documento(), mPessoa.getPessoa_documento_tipo(), mPessoa.getEmpresa_id(), mPessoa.getPessoa_perfil());
                            }



                            Intent mIntent = new Intent(MainActivity.this, NavigationMain.class);
                            startActivity(mIntent);
                            finish();

                        } else {
                            btnAutenticar.setText("ENTRAR");
                        }
                    }

                    @Override
                    public void onFailure(Call<List<Pessoa>> call, Throwable t) {
                        if (t.getMessage() != null) {
                            Log.v(TAG, t.getMessage());
                        }
                    }

                });

callTransportadora.enqueue(new Callback<List<Transportadora>>() {
                    @Override
                    public void onResponse(Call<List<Transportadora>> call, Response<List<Transportadora>> response) {
                        int statuscode = response.code();
                        if (statuscode == 200) {
                            for (int i = 0; i < response.body().size(); i++) {

                                Transportadora mTransportadora = response.body().get(i);
                                mRepositorio.addTransportadora(mTransportadora.getPessoa_id(), mTransportadora.getPessoa_nome(), mTransportadora.getPessoa_nome_fantasia(), mTransportadora.getPessoa_documento(), mTransportadora.getPessoa_documento_tipo(), mTransportadora.getEmpresa_id(), mTransportadora.getPessoa_perfil());

                            }
                        }
                    }

                    @Override
                    public void onFailure(Call<List<Transportadora>> call, Throwable t) {
                        if (t.getMessage() != null) {
                            Log.v(TAG, t.getMessage());
                        }
                    }

                });

0 个答案:

没有答案