sexta-feira, 7 de setembro de 2012

Usando o Handler como Timer 2

Aproveitando o exemplo do post anterior, e fazendo umas alterações, temos um outro uso do Handler. Desta vez para controlar um loop, usando o postDelayed.



Um uso para essa técnica é para fazer checagens de tempo em tempo em alguma condição.



quarta-feira, 15 de agosto de 2012

Usando o Handler como Timer

Uns dos usos interessantes da classe Handler é para executar alguma tarefa depois de algum tempo.




No caso vai executar o método finish() depois de 30 segundos.
O uso mais comum dessa técnica é para fechar a activity de Splash e chamar a activity principal.




segunda-feira, 13 de agosto de 2012

Dica: Como analisar as mensagens de erros do LogCat

Vamos fazer um projetinho bem simples para conseguirmos os dados para análise.

main.xml


TesteLogcatActivity.class


Ao executarmos, teremos a seguinte tela:




E no LogCat (no Eclipse, perspectiva DDMS):





Procuramos pela frase: "Caused by:", no caso é um erro de ArithmeticException : divisão por zero.
E na linha seguinte temos a linha da activity que causou o erro: linha 17.

A linha 17 na Activity é: resultado = dividendo / divisor;
O divisor está zerado, então corrigimos a linha 15: divisor = 10;
Localizado e corrigido o erro temos a nova activity:

TesteLogcatActivity.class



Ao executar, teremos um novo erro.

O LogCat, agora está assim:







Novamente, procuramos pela frase: "Caused by:", no caso é um erro de NullPointerException.
Geralmente um objeto não inicializado.
E na linha seguinte temos a linha da activity que causou o erro: linha 18.

A linha 18 na Activity é: tv.setText("Resultado = " + resultado );
tv é o objeto que não foi devidamente endereçado. Fazemos isso com o findViewById.

Localizado e corrigido o erro temos a nova activity:


TesteLogcatActivity.class



A executarmos, finalmente teremos a tela:



É isso.
Espero que ajude.

Obs: Se não tiver o "Caused by:" procure a primeira linha no LocgCat que tenha referência ao seu package, e verifique a linha no modulo indicado.