Segue uma tradução livre da documentação do Android:
"A classe Handler permite que você envie e processe mensagens (Messages) e objetos executáveis (Runnables) associados com a fila de mensagens (MessageQueue) da thread. Cada instância do Handler está associada a uma única thread e à sua fila de mensagens. Quando você cria um novo Handler, ele é associado à fila de mensagens da thread onde está sendo instanciado - a partir desse ponto, ele vai enviar mensagens e Runnables para a fila de mensagens e executá-los quando eles forem retirados da fila de mensagens.
Existem dois principais usos para um Handler: (1) para agendar mensagens e runnables para serem executados em algum momento no futuro; e (2) para enfileirar uma ação a ser executada em uma thread diferente da thread em execução.
O agendamento de mensagens é realizado com os métodos post(Runnable), postAtTime(Runnable, long), postDelayed(Runnable, long), sendEmptyMessage(int), sendMessage(Message), sendMessageAtTime(Message, long), e sendMessageDelayed(Message, long). As versões "post" permitem que você enfileire objetos executáveis a serem chamados pela fila de mensagens em que eles são recebidos; as versões "sendMessage" permitem que você enfileire um objeto Message contendo um conjunto de dados que serão processados pelo método handleMessage(Message) do Handler (o que exige que você implemente uma subclasse do Handler).
Ao usar "post" ou "send" para um Handler, você pode permitir que o item possa ser processado assim que a fila de mensagens esteja pronto para fazê-lo, ou especifique um atraso antes que seja processado ou horário específico para que possa ser processado. As duas últimas opções permitem implementar timeouts, ticks, e outros comportamentos baseados em tempo.
Quando um processo é criado para a sua aplicação, sua thread principal é dedicada à execução de uma fila de mensagens que cuida da gestão dos objetos de nível superior da aplicação (activities, broadcast receivers, etc.) e quaisquer janelas que criarem. Você pode criar suas próprias threads, e comunicar com a main-thread do aplicativo através de um objeto Handler. Isso é feito chamando o mesmo método "post" ou "sendMessage" como antes, mas a partir de sua nova thread. O Runnable ou Message então será agendado na fila de mensagens do Handler e processados quando apropriado."
Nenhum comentário:
Postar um comentário