没有调用入队回调

时间:2017-08-14 14:45:53

标签: android mysql retrofit retrofit2

我正在使用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时,这些从未发生过。

2 个答案:

答案 0 :(得分:0)

你有空的onFailure实现,所以可以调用回调但没有任何反应。尝试在onFailure方法中记录一些信息。

@Override
public void onFailure(Call<String> call, Throwable t) {
   Log.w("MyTag", "requestFailed", t); 
}

您将看到请求是否失败以及原因。

答案 1 :(得分:0)

我改变了我的IP并修复了。我不知道为什么。但是有效。非常感谢。