Eu tenho um pouco confuso sobre as diferenças entre Handlers, AsyncTaske Threadsno Android. Eu li vários blogs e perguntas aqui no StackOverflow.
Handlersão threads de segundo plano que fornecem a comunicação com a interface do usuário. A atualização de uma barra de progresso, por exemplo, deve ser feita via Handler. Usando manipuladores, você tem a vantagem de MessagingQueues, portanto, se você deseja agendar mensagens ou atualizar vários elementos da interface do usuário ou executar tarefas repetidas.
AsyncTasksão semelhantes, na verdade, eles usam Handler, mas não são executados no thread da interface do usuário, por isso é bom para buscar dados, por exemplo, buscar serviços da web. Mais tarde, você pode interagir com a interface do usuário.
Threadno entanto, não pode interagir com a interface do usuário, forneça mais threads "básico" e você perderá todas as abstrações de AsyncTask.
No entanto, eu gostaria de ter uma conexão de soquete em serviço. Isso deve ser executado em um manipulador ou um encadeamento, ou mesmo umAsyncTask ? A interação da interface do usuário não é necessária. Faz alguma diferença em termos de desempenho que eu uso?
Enquanto isso, a documentação foi amplamente aprimorada.
Handlernão é um encadeamento e não executa nada. É apenas um meio de passar com segurança mensagens de um thread para a fila de mensagens de outro thread . Portanto, normalmente (pelo menos) dois encadeamentos ainda devem ser criados, os quais podem usar um manipulador, mas o manipulador não pode executar nada.
