Order of execution
When first introduced, AsyncTasks were executed serially on a single background thread. Starting with DONUT
, this was changed to a pool of threads allowing multiple tasks to operate in parallel. Starting with HONEYCOMB
, tasks are executed on a single thread to avoid common application errors caused by parallel execution.
If you truly want parallel execution, you can invoke executeOnExecutor(java.util.concurrent.Executor, Object[])
withTHREAD_POOL_EXECUTOR
.
Lúcio Maciel
luciofm@gmail.com
luciofm@gmail.com
2013/2/1 Marcos Reis | .Mobi <marcos.reis@pontomobi.com.br>
Bom dia galera,--Estou com um problema bastante incomum aqui e gostaria da ajuda de vocês.Possuo o seguinte cenário:- No momento que minha aplicação inicia eu realizo uma requisição em meu servidor que me retorna um json informando se houve ou não o cadastro de algum recurso novo. Caso positivo eu populo uma List de AsyncTaks para serem disparadas depois.- Ao entrar na aplicação existe uma lista de opções onde quando forem acessadas devem buscar os dados no BD para popular os conteúdos a serem exibidos e chamar o método do meu "Pool" para iniciar as tasks de download dos novos recursos (que são imagens i vídeos).- O que ocorre é o seguinte, a primeira vez que entro na tela ele busca o conteúdo rapidamente e da inicio as tasks de download, entretanto se eu sair da tela e entrar em outra opção do menu os dados somente aparecem depois que TODAS as outras taks de download são concluídas.Eu acredito que o Android esta enfileirando as taks que estão sendo executadas e chamando uma após a outra de modo sincronizado (syncronized), e a minha task de consulta esta entrando sempre no fim da fila, sendo assim, ela só ira ser processada quando todas as outras terminarem.Pesquisei na internet e encontrei o Process.setThreadPriority(), então coloquei a prioridade na task que consulta o bd para THREAD_PRIORITY_URGENT_DISPLAY e para as tasks de download THREAD_PRIORITY_LOWEST, mas não obtive resultado.Alguém por acaso já passou por algo deste tipo? ou então teria alguma solução para o meu problema?Abaixo o link para o source do meu "Pool" e para os dois locais em que alimento a lista de tasks, valeu pela ajuda.PoolTaskExecutor: http://pastebin.com/6Qym9yPLAddTaskDownloadResource: http://pastebin.com/ujkvch89--Cordialmente,Marcos ReisAnalista de Sistemas / AndroidPontomobiAny screen,Anywhere™São Paulo | Rio | BH | Recife | London
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
0 comentários:
Postar um comentário