Middle
O que é o Looper no Android?
sobes.tech IA
Resposta da IA
O Looper é uma classe no Android que é usada para trabalhar com a fila de mensagens (MessageQueue) em threads. Ela conecta um thread à fila de mensagens, permitindo-lhe receber e processar mensagens dessa fila.
Princípio de funcionamento:
- Criação do Looper: No thread que deve ter uma fila de mensagens, chama-se
Looper.prepare(). - Início do ciclo: Chama-se
Looper.loop(). Esta chamada bloqueia o thread até que oLooperseja parado. Dentro do ciclo, oLooperextrai continuamente mensagens deMessageQueuee as envia aoHandleralvo. - Parar o Looper: Para terminar o trabalho, chama-se
Looper.quit()ouLooper.quitSafely().
Handler é usado para enviar mensagens à MessageQueue do Looper e processá-las no thread associado a esse Looper. Exemplo de uso:
// No thread onde o Looper deve estar
new Thread(() -> {
Looper.prepare(); // 1. Cria um Looper e MessageQueue para esse thread.
Handler handler = new Handler(Looper.myLooper()) { // 2. Cria um Handler ligado ao Looper desse thread.
@Override
public void handleMessage(Message msg) {
// Processamento da mensagem nesse thread
}
};
Looper.loop(); // 3. Inicia o ciclo do Looper para processar mensagens.
}).start();
// Em outro thread, envio de mensagem
handler.sendMessage(/* sua mensagem */);
Looper é necessário para que os threads possam processar tarefas assíncronas e interagir entre si, especialmente ao trabalhar com o thread de UI (que por padrão possui um Looper).