Tecnologia do Blogger.
RSS

[androidbrasil-dev] Re: [Artigo] AsyncTask - quando o assíncrono nem sempre é paralelo

Lúcio ótimo artigo, me esclareceu dúvidas que não havia entendido na documentação oficial.


Mas, eu tenho uma dúvida.

Uma única asynctask com vários processos independentes, se comportaria que forma? Por exemplo:

ImportacaoTask importacao = new ImportacaoTask();
importacao.execute();

@Override
protected Void doInBackground(Void... params) {
// TODO Auto-generated method stub
Cliente cliente = new Cliente();
cliente.setWsRepresentante(getSharedPreferences("PREFS_PRIVATE", MODE_PRIVATE).getInt("representante", 0));
cliente.importarDados();
TabelaPreco tabelaPreco = new TabelaPreco();
tabelaPreco.setWsRepresentante(getSharedPreferences("PREFS_PRIVATE", MODE_PRIVATE).getInt("representante", 0));
tabelaPreco.importarDados();
ClienteEndereco clienteEndereco = new ClienteEndereco();
clienteEndereco.setWsRepresentante(getSharedPreferences("PREFS_PRIVATE", MODE_PRIVATE).getInt("representante", 0));
clienteEndereco.importarDados();
Comprador comprador = new Comprador();
comprador.setWsRepresentante(getSharedPreferences("PREFS_PRIVATE", MODE_PRIVATE).getInt("representante", 0));
comprador.importarDados();
ProdutoPreco produtoPreco = new ProdutoPreco();
produtoPreco.setWsRepresentante(getSharedPreferences("PREFS_PRIVATE", MODE_PRIVATE).getInt("representante", 0));
produtoPreco.importarDados();
Embalagem embalagem = new Embalagem();
embalagem.setWsRepresentante(getSharedPreferences("PREFS_PRIVATE", MODE_PRIVATE).getInt("representante", 0));
embalagem.importarDados();
Produto produto = new Produto();
produto.setWsRepresentante(getSharedPreferences("PREFS_PRIVATE", MODE_PRIVATE).getInt("representante", 0));
produto.importarDados();
Grupo grupo = new Grupo();
grupo.setWsRepresentante(getSharedPreferences("PREFS_PRIVATE", MODE_PRIVATE).getInt("representante", 0));
grupo.importarDados();
FormaPagamento formaPagamento = new FormaPagamento();
formaPagamento.setWsRepresentante(getSharedPreferences("PREFS_PRIVATE", MODE_PRIVATE).getInt("representante", 0));
formaPagamento.importarDados();
Cidade cidade = new Cidade();
cidade.setWsRepresentante(getSharedPreferences("PREFS_PRIVATE", MODE_PRIVATE).getInt("representante", 0));
cidade.importarDados();
return null;
}

Cada um desses processos de importarDados(), vai acessa um método da Persistência onde eu faço uma requisição ao web service, recebo os dados e persisto no banco de dados.

Quando eu executo este processo no meu Motorola Razr com Android 4.0.4. Ele funciona sem problemas e carrega normalmente todas as tabelas.

Quando eu testo em um aparelho inferior, por exemplo que rode o Android 2.2. Ele não consegue completar o processo e acaba parando no meio.

Como ele se comporta neste aparelho inferior, este problema pode ser devido a internet ou ao poder de processamento?

Obrigado desde já.

On Tuesday, April 16, 2013 11:26:28 PM UTC-3, luciofm wrote:
Pessoal,

O que me motivou a escrever esse post foram alguns problemas já reportados aqui na lista, e uma observação em aplicativos, alguns grandes até, devidos a uma mudança de comportamento existente na execução das AsyncTasks, onde hoje por default elas são assincronas mas não paralelas (antigamente elas eram tanto assincronas como paralelas).

É uma boa leitura que pode ajudar quem depende muito dessa classe tão importante.

Abraços...
Lúcio Maciel
luc...@gmail.com

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