Mostrando postagens com marcador executor. Mostrar todas as postagens
Mostrando postagens com marcador executor. Mostrar todas as postagens

segunda-feira, 30 de abril de 2012

Executando tarefas sequencialmente em outra Thread no Android

 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: