Na interface do usuário, para executar algum trabalho em segundo plano, usei um separado Thread
. Mas, como sugerido por outros, agora estou usando AsyncTask
.
Qual é a principal diferença entre a Thread
e an AsyncTask
?
Em que cenário, devo usar um Thread
ou um AsyncTask
?
Respostas:
Para tarefas de longa execução ou com uso intenso de CPU, existem basicamente duas maneiras de fazer isso: encadeamentos Java e o AsyncTask nativo do Android.
Nenhum é necessariamente melhor que o outro, mas saber quando usar cada chamada é essencial para alavancar o desempenho do sistema em seu benefício.
Use AsyncTask para:
Use encadeamentos Java para:
E há muitos bons recursos pela Internet que podem ajudá-lo:
http://www.vogella.com/articles/AndroidBackgroundProcessing/article.html
fonte
AsyncTask
com o próprio agendador.Se você usar threads Java, precisará lidar com os seguintes requisitos em seu próprio código:
fonte
Fio
AsyncTask
fonte
Para mais informações visite Aqui
fonte
Fio:
Thread
deve ser usado para separar operações de execução longa do encadeamento principal, para melhorar o desempenho. Mas não pode ser cancelado com elegância e não pode lidar com alterações de configuração do Android. Você não pode atualizar a interface do usuário deThread
.AsyncTask
pode ser usado para lidar com itens de trabalho com duração inferior a 5 ms. ComAsyncTask
, você pode atualizar a interface do usuário ao contrário do javaThread
. Mas muitas tarefas de longa duração afetam o desempenho.Você tem mais algumas alternativas para os dois.
HandlerThread / Handler e ThreadPoolExecutor
Consulte a publicação abaixo para obter mais detalhes:
Handler vs AsyncTask vs Thread
fonte