Galera,
Valeu. Acho que solucionou o caso. Penso que IntentService + Loader + LocalBroadcast pode ser a melhor opção.
E se não me engano os Loaders surgiram justamente para resolver essa questão de sincronização com UI.
Olha o comentário de um cara aqui referente a este post:
"What if the background task in a retained fragment completes and wants to deliver some result or update some time between the host activity's onDestroy and onCreate? This is the problem that Loaders solve for you -- I don't think that retained fragments really help in typical cases. Loaders will make sure that results are held and delivered at the appropriate time so the UI can remain consistent with any background operations its tracking.
Also don't forget about Services for maintaining long-running connections and background tasks since they are never subject to activity lifecycles. Services can deliver updates to activities with either local broadcasts or callbacks into binders."
Não conheço muito o conceito de retained fragment. O comentário que me mencionei acima é referente a este artigo sobre o assunto.
O autor explica como utilizar o retained fragment para manter o estado de uma Activity, mas não imagino como aplicar isso para estados de fragments.
De qq forma, como o camarada comentou acima, isso pode acabar complicando.
Abs,
Em 9 de janeiro de 2014 09:07, Rafael Nobre Rocha <rafael.rocha@novaprolink.com.br> escreveu:
Esse Json é dinâmico em cada acesso à tela ? Ou deve ser carregado apenas uma vez ? Se for este o caso, recomendo vc criar um retained Fragment, sem interface, que carrega o Json e o deixa disponível para toda vez que seu fragment precisar dele. Ele não será recriado e somente no primeiro onCreateView do seu fragment que ele irá acessar a rede, retornando os dados em cache nas demais.--
Em quarta-feira, 8 de janeiro de 2014 16h04min11s UTC-2, Gink Labrev escreveu:Alguém pode me explicar o seguinte:De acordo com o ciclo de vida dos Fragments, o método onCreate() é chamado somente uma vez quando o fragmento é criada e o onCreateView() é chamado sempre que retornamos ao este.Isso se diferencia bastante da Activity aonde toda UI pode ser instanciada uma única vez no método onCreate(), mas no fragment, isso ocorre sempre que este volta ao primeiro plano.Minha pergunta então é:Quero baixar da internet um json e depois atualizar a UI com ele.1) Se chamo o AsyncTask em onCreate(), corre o risco de os elementos de UI não estiverem inicializados quando rodar o onPostExecute() - ou seja, o onCreateView() não estiver finalizado.2) Se chamo o AsyncTask em onCreateView(), este irá executar todas as vezes que o fragmento vier em primeiro plano, o que pode ser ineficiente e indesejável, dependendo do caso.Qual então a forma correta de tratar esse problema ?[]'sYou 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