Middle
O que é o Looper no Android?
sobes.tech IA
Resposta da IA
Looper é um objeto concebido para executar uma tarefa várias vezes num único thread. Cria um ciclo de eventos que processa mensagens da fila de mensagens (MessageQueue).
Componentes principais:
- MessageQueue: Fila de tarefas ou mensagens.
- Looper: Objeto que extrai mensagens de MessageQueue e as envia ao Handler correspondente.
- Handler: Objeto associado a um thread e MessageQueue específicos. É usado para enviar mensagens para MessageQueue e processá-las.
Princípio de funcionamento:
- O thread que deseja usar o Looper chama
Looper.prepare()para criar um Looper e MessageQueue. - O thread chama
Looper.loop()para iniciar o ciclo de processamento de mensagens. Esta função bloqueia o thread até queLooper.quit()seja chamado. - Handler cria e envia mensagens para MessageQueue, relacionadas com este Looper.
- O Looper extrai as mensagens de MessageQueue na ordem e as passa de volta ao Handler para processamento no método
handleMessage().
Aplicações:
- Os threads de interface de utilizador (UI Thread) no Android usam o Looper para lidar com eventos como cliques e toques sem bloquear a UI.
- Os threads de fundo podem usar o Looper para realizar tarefas repetitivas ou processar mensagens enviadas por outros threads.
// Exemplo de criação e execução do Looper num thread de fundo
class WorkerThread extends Thread {
public Handler handler;
public void run() {
Looper.prepare(); // Criar Looper e MessageQueue para este thread
handler = new Handler(Looper.myLooper()) { // Criar Handler
@Override
public void handleMessage(Message msg) {
// Processar mensagem aqui
}
};
Looper.loop(); // Iniciar ciclo de processamento de mensagens
}
}