Middle
¿Qué es Looper en Android?
sobes.tech AI
Respuesta de la IA
Looper es una clase en Android que se utiliza para trabajar con la cola de mensajes (MessageQueue) en hilos. Conecta un hilo con la cola de mensajes, permitiéndole recibir y procesar mensajes de esta cola.
Principio de funcionamiento:
- Creación de Looper: En el hilo que debe tener una cola de mensajes, se llama a
Looper.prepare(). - Inicio del ciclo: Se llama a
Looper.loop(). Esta llamada bloquea el hilo hasta que elLooperse detenga. Dentro del ciclo,Looperextrae continuamente mensajes deMessageQueuey los envía alHandlerobjetivo. - Detener Looper: Para finalizar el trabajo, se llama a
Looper.quit()oLooper.quitSafely().
Handler se usa para enviar mensajes a la MessageQueue del Looper y procesarlos en el hilo asociado a ese Looper. Ejemplo de uso:
// En el hilo donde debe estar el Looper
new Thread(() -> {
Looper.prepare(); // 1. Se crea un Looper y MessageQueue para este hilo.
Handler handler = new Handler(Looper.myLooper()) { // 2. Se crea un Handler asociado al Looper de este hilo.
@Override
public void handleMessage(Message msg) {
// Procesamiento del mensaje en este hilo
}
};
Looper.loop(); // 3. Se inicia el ciclo del Looper para procesar mensajes.
}).start();
// En otro hilo, envío de mensaje
handler.sendMessage(/* tu mensaje */);
Looper es necesario para que los hilos puedan procesar tareas asíncronas y realizar interacciones entre hilos, especialmente al trabajar con el hilo de interfaz de usuario (que por defecto tiene un Looper).