Tecnologia do Blogger.
RSS

Re: [androidbrasil-dev] Executando tarefas em segundo plano

Naquele código que enviei, o download é feito em background e não tem nada na tela. Somente após o download algo é exibido. A sequência é:

download em background – nada na tela, mas a thread de UI não fica bloqueada, se tiver algo, dá p interagir
fim do download – atualiza a UI
salva no banco em background – o que está na tela é interativo.

Provavelmente seu fluxo é outro e não ficou claro no e-mail resumido.





2013/10/5 Paulo Henrique Peres <paulohenriquepo@gmail.com>
Nao deu certo nao.

O que eu preciso na verdade eh buscar uns dados do webservice e salvar no banco de dados do device apos a pessoa fazer login.
Esses dados serao usados para usar uma parte da aplicacao qdo estiver off-line.
No entanto quero que seja possivel o usuario utilizar a aplicacao enquanto eh realizada a sincronizacao.
Eu dei uma olhada na classe AbstractThreadedSyncAdapter, mas pelo que entendi ela eh pra ser utilizada como um servico se nao me engano. 
Acho que nao serve no meu caso.



2013/10/4 Douglas Drumond <drumond.douglas@gmail.com>
Você baixa na mesma AsyncTask que salva no banco? Até pode ser, mas precisa fazer um publishUpdate no meio.

Vai ficar mais ou menos assim na sua Async:

class SincronizacaoTask extends AsyncTask <Void, String[], String[]> {

   protected String[] doInBackground(Void… params) {
       download das coisas

       String[] retornoParaUsuario = new String[]{status, mensagem.toString()};
       publishProgress(retornoParaUsuario);

       salva no banco

       return retornoParaUsuario;
   }

   protected void onProgressUpdate(String[]… progressArray) {
        atualiza a tela com status e mensagem do progressArray[0][0] (status) e progressArray[0][1] (mensagem.toString())
   }
}


Desse jeito você exibe algo na tela depois do download, mas antes de salvar no banco.



2013/10/4 Paulo Henrique Peres <paulohenriquepo@gmail.com>
To fazendo uma app que faz uma requisicao em um webservice,
com a resposta do web service parte dos dados serao exibidos ao usuario
e outra parte sera inserida no banco local do device.

Esses dados que serao inseridos no banco local eu coloquei dentro de uma AsyncTask na esperanca de que a aplicacao mostraria a resposta ao usuario 
e ficaria no fundo salvando esses dados.

No entanto nao foi esse o comportamento, a resposta so chega ao usuario (atualiza a tela) depois que termina de rodar a AsyncTask.

Segue parte do codigo


//busca os dados aqui

try{

SincronizacaoTask sincronizacaoTask = new SincronizacaoTask(uuidlconta);

sincronizacaoTask.execute((Void)null);

}catch(Exception e){

Log.e("bbb", "I got an error", e);

}

//Retorno do metodo com a resposta do usuario

return new String[]{status, mensagem.toString()};


Como faco pro comportamento ser da dorma como descrevi acima?





--
Paulo Henrique Peres
Oracle Certified Professional, Java Programmer 
Oracle Certified Professional, Web Component Developer

--
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.



--
Paulo Henrique Peres
Oracle Certified Professional, Java Programmer 
Oracle Certified Professional, Web Component Developer

--
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.

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

0 comentários:

Postar um comentário