我正在使用retrofit2并且认识到有时Call.enqueue的回调没有被调用。
Retrofit retrofit = new Retrofit.Builder().baseUrl(usuarioService.BASE_URL).addConverterFactory(GsonConverterFactory.create(usuarioService.g)).build();
usuarioService service = retrofit.create(usuarioService.class);
Call<String> user = service.verificarUsuario(login.getText().toString(), senha.getText().toString());
user.enqueue(new retrofit2.Callback<String>() {
@Override
public void onResponse(Call<String> call, Response<String> response) {
String resultado = response.body();
if (resultado.equals("false")) {
Toast toast = Toast.makeText(MainActivity.this, "Senha ou usuário não existente", Toast.LENGTH_SHORT);
toast.setGravity(Gravity.TOP | Gravity.CENTER_VERTICAL, 0, 0);
toast.show();
} else {
if (resultado.equals("true")) {
Toast toast = Toast.makeText(MainActivity.this, "ACESSO PERMITIDO", Toast.LENGTH_SHORT);
toast.setGravity(Gravity.CENTER_HORIZONTAL | Gravity.CENTER_VERTICAL, 0, 0);
toast.show();
Intent intent = new Intent(MainActivity.this, MenuDrawer.class);
intent.putExtra("chave1", login.getText().toString());
startActivity(intent);
finish();
}
}
}
@Override
public void onFailure(Call<String> call, Throwable t) {
}
});
突然间,问题开始发生,有人知道如何修复它吗?这些问题要到很久才会发生,我不知道发生了什么。
这些发生在我使用移动数据时,但是当我使用WIFI时,这些从未发生过。
答案 0 :(得分:0)
你有空的onFailure实现,所以可以调用回调但没有任何反应。尝试在onFailure方法中记录一些信息。
@Override
public void onFailure(Call<String> call, Throwable t) {
Log.w("MyTag", "requestFailed", t);
}
您将看到请求是否失败以及原因。
答案 1 :(得分:0)
我改变了我的IP并修复了。我不知道为什么。但是有效。非常感谢。