Concurrencia en Android - Parte II

Descubre Looper, MessageQueue y Handler en Android: coordina hilos UI y de trabajo, evita carreras y aplica buenas prácticas con HandlerThread, coroutines y WorkManager.

3 sept 2025 • 4 min de lectura • Equipo Q2BSTUDIO

Inteligencia-Artificial-

Nota: este artículo forma parte de una serie práctica sobre el modelo de concurrencia en Android. En la primera parte repasamos Handler, Message, Runnable y AsyncTask con un caso de uso típico: descargar una imagen desde Internet sin bloquear la interfaz.

En esta segunda parte profundizamos en el corazón del modelo de concurrencia de Android: Looper, Message Queue y Handler, cómo se coordinan y cómo emplearlos para comunicar el hilo principal de la interfaz con un hilo de trabajo. Además, veremos por qué objetos de sincronización como CountDownLatch son útiles para evitar condiciones de carrera.

Modelo asíncrono en una frase: un Handler publica Runnables o envía Messages a la cola de mensajes del Looper, y el Looper procesa esa cola en un bucle continuo, entregando cada mensaje al Handler adecuado para su ejecución en el hilo asociado.

Message loop y Looper: toda interfaz reactiva gira alrededor de un bucle de mensajes. En Android, Looper implementa este patrón. La función prepare crea la Message Queue y garantiza un Looper por hilo mediante almacenamiento local de hilo. El hilo que invoca Looper.prepare pasa a ser el hilo del Looper. La función loop entra en un bucle infinito que extrae mensajes de la cola de manera bloqueante y los distribuye con dispatchMessage al Handler objetivo.

Handler: es el ayudante que conoce el Looper y su Message Queue. Un Handler creado en un hilo con Looper publica mensajes en la cola de ese hilo. El hilo principal de Android ya dispone de Looper, por eso podemos crear Handlers asociados al UI thread sin preparación adicional. Si intentas instanciar un Handler en un hilo sin Looper, fallará porque no hay cola donde encolar los mensajes.

Hilos de trabajo con Looper propio: para que un hilo de fondo procese mensajes, prepara su Looper y crea un Handler asociado antes de iniciar el bucle de mensajes. Secuencia típica: 1 preparar Looper con Looper.prepare 2 crear un Handler sobrescribiendo handleMessage para procesar lo que llegue 3 señalizar que el hilo está listo 4 iniciar Looper.loop para comenzar a consumir la cola.

Enviar mensajes del UI thread a un worker thread sin carreras: 1 en la actividad crea un CountDownLatch con 1 2 arranca el worker pasando la referencia del latch 3 en run del worker invoca Looper.prepare, crea su Handler y al finalizar la configuración ejecuta latch.countDown para indicar que ya puede recibir mensajes 4 de vuelta en la actividad espera con latch.await hasta que el worker esté listo 5 obtén y envía un Message mediante workerThreadHandler.sendMessage 6 en handleMessage del worker realiza el trabajo y, si necesitas tocar la interfaz, usa runOnUiThread o un Handler del hilo principal para publicar el resultado sin bloquear ni violar restricciones de UI.

Buenas prácticas para producción: usa HandlerThread cuando necesites un hilo con Looper persistente administrado por Android; libera el bucle con quit o quitSafely cuando el hilo ya no sea necesario; evita fugas de memoria declarando Handlers estáticos internos con WeakReference al contexto; para flujos modernos considera Kotlin Coroutines con Dispatchers, WorkManager para tareas garantizadas y RxJava si tu proyecto lo requiere, sin perder de vista que internamente Android sigue basándose en Looper, MessageQueue y Handler.

Ejemplo resumido de flujo de mensajes: 1 la actividad arranca el WorkerThread 2 el worker prepara su Looper y crea su Handler 3 el worker avisa con CountDownLatch que ya está listo 4 la actividad envía un Message al Handler del worker 5 el worker procesa el mensaje y devuelve feedback al UI mediante un post al hilo principal.

Q2BSTUDIO puede ayudarte a diseñar arquitecturas móviles robustas que apliquen correctamente este modelo asíncrono, desde la capa de concurrencia hasta la integración con servicios backend y observabilidad. Somos una empresa de desarrollo con foco en aplicaciones a medida y software a medida, especialistas en inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio con power bi, además de automatización de procesos y agentes IA para empresas. Si buscas un equipo que combine rendimiento, seguridad y escalabilidad, descubre cómo abordamos proyectos de aplicaciones a medida y cómo potenciamos productos con inteligencia artificial.

Conclusión: comprender Looper, MessageQueue y Handler es esencial para diseñar apps Android fluidas y seguras. Controlar cuándo crear un Looper, cómo sincronizar el arranque de hilos con CountDownLatch y cómo comunicar hilos de manera segura evita bloqueos y carreras. Este conocimiento, combinado con prácticas modernas como HandlerThread o coroutines, te permitirá crear experiencias móviles de alto nivel listas para escalar.

¿UNA PAUSA?

Juega un momento antes de irte

NUESTROS SERVICIOS

Cómo podemos ayudarte

Inteligencia artificial

Agentes de IA, chatbots y asistentes inteligentes que automatizan tareas y atienden a tus clientes 24/7 para mejorar la eficiencia de tu negocio.

Más info

Desarrollo de software

Aplicaciones web, móviles y de escritorio, intranets, e-commerce, SaaS y plataformas de gestión diseñadas para las necesidades concretas de tu empresa.

Más info

Servicios cloud

Migración, infraestructura, hosting gestionado, alta disponibilidad y seguridad en Microsoft Azure y Amazon Web Services para que tu negocio escale sin límites.

Más info

Ciberseguridad y pentesting

Auditorías de seguridad, test de intrusión (pentesting) y protección de aplicaciones, datos e infraestructura on-premise y cloud, con hacking ético y cumplimiento normativo.

Más info

Business Intelligence

Cuadros de mando y análisis de datos con Power BI: integramos tus fuentes, diseñamos dashboards y KPIs y convertimos tus datos en decisiones.

Más info

Automatización de procesos

Automatizamos tareas repetitivas y conectamos tus aplicaciones con n8n, Power Automate, Make y RPA, eliminando trabajo manual y aumentando la productividad.

Más info

Formación para empresas

Formamos a tus equipos en tecnología con criterio: desarrollo web, bases de datos, Git, buenas prácticas y seguridad, automatización con n8n, inteligencia artificial para empresas y creación de soluciones de IA con Azure AI Foundry.

Más info

Auditoría de código

Auditamos el código que creas tú, tu equipo o una IA: te decimos qué está bien y qué mejorar, lo securizamos y lo dejamos listo para producción, web o app.

Más info

Generación de imágenes con IA

Creamos por ti las imágenes que necesita tu negocio con inteligencia artificial: producto, redes, publicidad, ilustración y avatares. Tú nos dices qué quieres y te lo entregamos listo para usar.

Más info

Generación de vídeos con IA

Creamos por ti vídeos con inteligencia artificial: promocionales, para redes, presentadores virtuales, doblaje y animaciones. Nos cuentas la idea y te lo entregamos montado y listo para publicar.

Más info

Avatares conversacionales con IA

Creamos avatares conversacionales con IA —humanos digitales con cara y voz— que atienden a tus clientes y equipos con el conocimiento de tu empresa, en tu web, monitores interactivos, WhatsApp o Teams.

Más info

Marketing Online e IA

Google Ads, Meta Ads, LinkedIn Ads y posicionamiento en motores de IA (GEO/AEO): captamos clientes y hacemos que tu marca aparezca donde te buscan, también en ChatGPT, Gemini y Perplexity.

Más info

¿Tienes un proyecto en mente?

Cuéntanos tu visión y la convertimos en una solución de software. Sea cual sea el alcance, hacemos realidad tu idea.

Live Chat