Por que o código está saindo do if?

1 resposta
A

Alguém poderia me ajudar? Estou programando em java mobile e não sei porque esse código simplesmente sai do if
Por exemplo, se não tem internet, ele não vai pro bloco ELSE

if (new WebClient().temConexao(context)) {
        RecebeListasTask dados = new RecebeListasTask(usuario);
        dados.execute("item");
        List<Item> items = new ArrayList<>();
        try {
            items = dados.get();
        } catch (Exception e) {
            System.out.println("Erro " + e);
        }

        for (Item item : items) {
            if (buscaItem(item.getId()) == null) {
                insere(item, usuario);
            }
        }
        return items;
    } else {
        Toast.makeText(context, "Sem conexão com a internet!", Toast.LENGTH_LONG).show();

        String sql = "SELECT * FROM Item where id_usuario = "+usuario.getId();
        SQLiteDatabase db = getReadableDatabase();
        Cursor c = db.rawQuery(sql, null);
        List<Item> items = new ArrayList<>();

        while (c.moveToNext()) {
            Item item = new Item();
            item.setId(c.getLong(c.getColumnIndex("id")));
            item.setTitulo(c.getString(c.getColumnIndex("titulo")));
            item.setLogin(c.getString(c.getColumnIndex("login")));
            item.setSenha(c.getString(c.getColumnIndex("senha")));
            item.setLinkSite(c.getString(c.getColumnIndex("link_site")));
            item.setDescricao(c.getString(c.getColumnIndex("descricao")));
            item.setId_usuario(usuario);

            items.add(item);
        }
        c.close();
        return items;
    }

1 Resposta

TerraSkilll

E pra onde ele vai? Dispara alguma exceção?

Já debugou pra ver o que new WebClient().temConexao(context) está retornando?

Imagino que você quis economizar 1 linha, mas um ajuste que pode te ajudar a debugar é separa a criação do WebClient da verificação da conexao:

WebClient webClient = new WebClient();

 if (webClient.temConexao(context)) {
// resto do código.

Além do retorno do método temConexao, verifique se context está válido quando o método é chamado.

Abraço.

Criado 21 de maio de 2018
Ultima resposta 21 de mai. de 2018
Respostas 1
Participantes 2