Este post exemplifica uma necessidade que às vezes ocorre em um projeto: executar uma série de tarefas sequencialmente em uma thread.
Para fazer isso temos um recurso em Java que atende perfeitamente ao requisito acima: a estrutura Executor. Um executor é basicamente um gerenciador de threads e tarefas.
O exemplo consiste em executar uma série de tarefas numa única thread que é controlada por um executor. A tarefa vai ser representada por uma classe que vai implementar um Runnable (MyTask). Para não ficar invisível vamos atualizar a tela com o Dialog.
Vamos também usar uma outra thread para definir o Executor e submeter as tarefas para execução e aguardar até o fim de todas as tarefas para encerrar o Dialog ( MyControlThread).
Os códigos:
TesteExecutorsActivity.java
main.xml
Manifest file
PS: Algumas considerações sobre o código:
No trecho abaixo, devemos observar o seguinte:
a. O executor é definido com uma thread para podermos executar as tarefas sequencialmente uma a uma.
b. O loop for é para simular a submissão de "n" tarefas, normalmente teríamos diversas tarefas diferentes sendo submetidas da seguinte forma:
PS1: Nas tarefas, o Handler é utilizado para executar algum código na UI Thread, normalmente para alterar a tela.
Executando no emulador:
Cara, muito legal o post! :)
ResponderExcluirParabéns!
Abraço
Parabéns pelo blog e a dedicação de seu tempo a ele... O post
ResponderExcluirThread, Handler, Runnable e ProgressDialog - Ex01, me ajudou com os estudos e testes de thread no android. Agora vou tentar implementar isso para atualizar uns bitmap de um listview...
Até mais...
Eu queria executar isso ao entrar no meu aplicativo sem ter que clicar em algum componente é possivél?
ResponderExcluirSim.
ExcluirSem problema.
Muito bacana!
ResponderExcluirMuito Obrigado por compartilhar! Realmente útil pra quem está começando.
ResponderExcluir