Que bom que ajudou Tiago.
Em quarta-feira, 18 de março de 2015 08:08:13 UTC-3, Tiago J. Grillo escreveu:
-- Sobre o comportamento que você explicou, sim esta pode ser uma possível causa.
Sobre a pergunta em relação ao post acredito que ela seja uma discussão interessante para outro e-mail :). Quando você fala de método Post acredito que você esteja se referindo ao HTTP Post, correto? Eu não faria uma chamada dessas de maneira sincrona e sem usar uma Thread, se você não usar o AsyncTask a chamada irá rodar na Main Thread o que pode impactar a performance da UI da sua aplicação.
Mas posta lá que em relação a isso outras pessoas podem te ajudar melhor.
Em quarta-feira, 18 de março de 2015 08:08:13 UTC-3, Tiago J. Grillo escreveu:
Ajudou sim Eduardo agora ficou mais claro. E se entendi bem, isso explica uma coisa que ocorria comigo.Tenho uma chamada a um ws que faço por async mas preciso experar o retorno para dar na hora o feedback ao usuario se operação deu certo ou não. E as vezes do nada a chamada ficava lenta, até então eu acreditava que era algo no servidor, mas talvez fosse a chamad async esperando sua vez de executar.Digo isso por que depois que mudei para o executeOnExecutor isso não ocorreu mais. Confere esta ideia?Outra pergunta como fazer chamadas a metodos post de forma sincrona, ou seja, esperando seu retorno, sem asynctask? (se esta pergunta fugir muito do topico mando ela em outro email)Obrigado.2015-03-17 9:04 GMT-03:00 Eduardo Carrara de Araujo <ecarrar...@gmail.com>:Tiago,--Isso acontece porque ao longo das versões do Android a implemetanção do execute do AsyncTask mudou.Nos primórdios as tarefas eram executadas de maneira serial utilizando apenas uma única Thread em background. A partir do Donut a implementação passou a utilizar um pool de threads para executar tudo paralelamente.Como executar tudo paralelamente pode causar alguns bugs e problemas de sincronização, a partir do Honeycomb as tarefas são executadas novamente com apenas uma Thread. Mas você pode executar as tarefas em paralelo chamando o método que você usou: executeOnExecutor passando o THREAD_POOL_EXECUTOR.A partir do Honeycomb você pode escolher o comportamento que você deseja, se for utilizar o thread pool para executar as tarefas em paralelo tenha certeza de testar condições que possam causar problemas de sincronização entre threads, condições de corrida etc.Na documentação da AsyncTask tem alguns pontos sobre isso: http://developer.android.com/reference/android/ os/AsyncTask.html Espero ter ajudado.Abs.
Em quinta-feira, 12 de março de 2015 17:56:57 UTC-3, Tiago J. Grillo escreveu:Boa noite,Tive um problema agora a pouco que foi o seguinteantes eu chamava meus asynctak assim:ForcarCargaAT at = new ForcarCargaAT(activity, searchAdapter, requestType, true).execute();ai do nada (atualizei minhas apis) parou, pesquisando na net, agora tenho que chamar assim:ForcarCargaAT at = new ForcarCargaAT(activity, searchAdapter, requestType, true);if (Build.VERSION.SDK_INT>=Build.VERSION_CODES.HONEYCOMB) at.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); // sempre entra aqui nos dispositivos que testei elseat.execute();meu inglês não é dos melhores e não entendi o por que isto ocorreuPodem me ajudar
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-...@googlegroups.com .
For more options, visit https://groups.google.com/d/optout .
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/d/optout.






0 comentários:
Postar um comentário