Sobes.tech
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:

  1. Creación de Looper: En el hilo que debe tener una cola de mensajes, se llama a Looper.prepare().
  2. Inicio del ciclo: Se llama a Looper.loop(). Esta llamada bloquea el hilo hasta que el Looper se detenga. Dentro del ciclo, Looper extrae continuamente mensajes de MessageQueue y los envía al Handler objetivo.
  3. Detener Looper: Para finalizar el trabajo, se llama a Looper.quit() o Looper.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).