Tecnologia do Blogger.
RSS

[androidbrasil-dev] Dois eventos de clique em botões, é comum?

Galera, boa noite


Estou trabalhando num app que pede autorização para o usuário para iniciar uma série de downloads, que são necessários ao funcionamento da aplicação. 

Os downloads são processados numa classe downloadTask que estende AsyncTask, e segundo a lógica de cancelar um download em andamento ou resumir ou download interrompido, criamos e depois executamos um downloadTask sempre que o usuário confirma que quer iniciar ou retomar o processo. Adicionalmente, para cada pacote a ser baixado, um novo downloadTask é criado, já que tivemos vários problemas eu reusar o mesmo objeto ao chamar o método start(). Criar um novo downloadTask foi a saída óbvia.

O problema é que penduramos no onClickListener do AlertDialog de confirmação o método startDownload, que cria uma nova classe de downloadTask. Segundo alguns reports de crash e stackTraces via Market, chegamos à conclusão que duas AsyncTasks estão sendo iniciadas ao mesmo tempo, pois dois cliques estão sendo capturados no botão do AlertDialog, o que gera comportamentos não-determinísticos indesejáveis e frequentemente capota o app.

Pesquisei e vi é é possível o evento de onClick acabar registrando dois cliques, dependendo da carga em execução no sistema Android e outros fatores, e uma solução eventual é recuperar a view BUTTON_POSITIVE dentro do DialogInterface e usar setClickable(false) antes de iniciar o download. Não conseguimos reproduzir esse comportamento em nossos testes, de modo que não conseguimos saber se isso resolve ou não o problema.

Alguém por acaso já passou por coisa parecida?

Grato pela força,

[]s

----------------------------------------------------------
Ubiratan Soares
(11) 8565-8455

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

0 comentários:

Postar um comentário