我正在使用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());
}
}
});