1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

AsyncTask em RUNNING para sempre

Estou enfrentando um problema com uma a AsyncTask. Eu tenho um fragmente aonde eu aguardo um pacote via serial que informa o endereço de n dispositivos então eu inicio uma AsyncTask requisitando um por um enquanto eu atualizo a tela, isso já esta funcionando.

Porem o problema vem quando pois esse dispositivo envia essa informação de lista de endereço em tempo em tempo e geralmente ainda eu estou executado a AsyncTask isso faz com que se entre na rotina e crie outra Thread.

Para não sobrecarregar e nem desperdiçar processamento, eu não quero executar uma segunda, que pegaria os dados mais recentes, sem antes terminar a primeira requisição.

A própria classe oferece a informação por AsyncTask.Status. Quando se da o new ela esta como PENDING. E quando executa RUNNING.

Porem mesmo quando acaba a execução ela nunca sai do estado RUNNING. Debugando eu verifiquei que ele entra no método onPostExecute(Result), porem não muda para FINISHED.

A solução que eu fiz foi criar uma atributo na classe tipo boleano para eu saber se acabou ou não. Isso esta funcionando muito bem.

Porem eu queria saber se auguem sabe como se faz para ela mudar esse Status.

  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags android threads java ou faça a sua própria pergunta.