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.
sexta-feira, 7 de setembro de 2012
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.
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.
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.
Assinar:
Postagens (Atom)

