POLITICA DE COOKIES

Q2BSTUDIO.COM utiliza cookies técnicas, analíticas, de sesión y de publicidad con la finalidad de prestar un mejor servicio. No obstante, necesitamos su consentimiento explícito para poder utilizarlas. Así mismo puede cambiar la configuración de las cookies u obtener más información aquí .

Solución a la rotación de pantalla con AsyncTask

Solución a la rotación de pantalla con AsyncTask

Publicado el 04/09/2025

Cómo resolver el problema de rotación de pantalla con AsyncTask en Android y evitar fugas de ventanas y fallos al actualizar la interfaz. Cuando una Activity crea una AsyncTask y el usuario rota la pantalla, el sistema destruye esa Activity y crea otra instancia. La tarea en segundo plano continúa, pero pierde la referencia a la UI. Si intenta mostrar o cerrar un ProgressDialog o actualizar un ImageView de la Activity destruida, aparecerán errores típicos como WindowLeaked y IllegalArgumentException al no estar la vista adjunta al WindowManager.

Escenario típico. La Activity lanza una AsyncTask para descargar una imagen y muestra un ProgressDialog. Al rotar, la Activity se destruye, el diálogo queda asociado a una ventana que ya no existe y la tarea sigue enviando callbacks a una referencia inválida. Resultado. Excepciones en tiempo de ejecución y cierre inesperado de la app.

Solución rápida pero frágil. Cancelar la AsyncTask en onPause u onStop y cerrar el ProgressDialog. Funciona, pero el usuario pierde el progreso y la descarga se interrumpe con cada rotación.

Solución robusta con Fragment retenido. Mueve la AsyncTask a un Fragment y usa setRetainInstance(true) para conservarlo entre cambios de configuración. Así evitas recrear la tarea y mantienes el estado del proceso. Puntos clave. Crea la AsyncTask dentro del Fragment y expón callbacks para onProgress, onResult y onCancel. Solo toca la UI cuando el Fragment está adjunto a la Activity. En onDetach del Fragment, cierra cualquier ProgressDialog visible y limpia referencias a bitmaps para evitar fugas de memoria. Usa una bandera para detectar si la rotación ocurrió durante la ejecución y decide si reintentas o reanudas el flujo tras reatachar. En la nueva Activity, el Fragment retenido sigue vivo y puedes volver a conectar los elementos de UI.

Recomendación moderna. AsyncTask quedó obsoleto en Android y setRetainInstance ha perdido relevancia con Architecture Components. En proyectos actuales, prefiere ViewModel para sobrevivir a rotaciones, LiveData o StateFlow para notificar estados de carga y éxito, y coroutines o WorkManager para ejecutar tareas en segundo plano. Sustituye ProgressDialog por un ProgressBar en el layout. Usa referencias débiles al contexto cuando sea necesario y cancela el trabajo en onCleared del ViewModel para liberar recursos.

Buenas prácticas adicionales. No mantengas referencias directas a Activities dentro de tareas en segundo plano. Centraliza estados de carga, éxito y error en un único contenedor de estado para simplificar la UI. Si descargas imágenes, valora librerías como Glide o Coil que ya gestionan caché y ciclo de vida. Si necesitas continuidad garantizada, usa WorkManager con restricciones de red y batería.

En Q2BSTUDIO diseñamos aplicaciones a medida y software a medida que gestionan correctamente cambios de configuración, multihilo y ciclos de vida complejos, integrando además analítica, seguridad y despliegues escalables. Si buscas un partner para crear o modernizar tu app Android, descubre nuestro enfoque full stack en desarrollo de aplicaciones y software multiplataforma.

Más allá del front, construimos backends resilientes con servicios cloud aws y azure, pipelines CI CD y monitorización. Si tu aplicación móvil requiere escalado dinámico, balanceo de carga o almacenamiento seguro, te ayudamos a definir la arquitectura y el coste total de propiedad. Conoce nuestros servicios cloud aws y azure.

Nuestro equipo experto integra inteligencia artificial e ia para empresas, agentes IA y servicios inteligencia de negocio con power bi para activar casos de uso de recomendación, búsqueda semántica, clasificación y reporting avanzado. También reforzamos la ciberseguridad con auditorías y pentesting para prevenir vulnerabilidades desde el diseño. Palabras clave relevantes para tu proyecto. aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA, power bi.

Resumen accionable. Si aún usas AsyncTask, migra a ViewModel y coroutines con un ProgressBar en la vista. Si necesitas mantener la lógica existente, encapsúlala en un Fragment retenido que maneje correctamente los callbacks y cierre diálogos en onDetach. Para una solución sostenible y lista para producción, apóyate en patrones modernos, pruebas automatizadas y observabilidad. En Q2BSTUDIO te acompañamos desde el diseño hasta la puesta en producción con calidad, rendimiento y seguridad.

Fin del artículo, inicio de la diversión
Construyendo software juntos

Dando vida a tus ideas desde 2008

Diseñamos aplicaciones móviles y de escritorio innovadoras que cumplen con tus requisitos específicos y mejoran la eficiencia operativa.
Más info
Cuéntanos tu visión
Sea cual sea el alcance, podemos convertir tu idea en realidad. Envíanosla y charlemos sobre tu proyecto o una colaboración futura.
Contáctanos
artículos destacados
Live Chat
Enviado correctamente.

Gracias por confiar en Q2BStudio