3 votos

Aplicaciones que aparecen como pantallas en blanco en la lista de aplicaciones recientes cuando se encuentran en orientación horizontal

He notado un comportamiento extraño en la pantalla de aplicaciones recientes en Android del que no puedo encontrar una explicación en ningún lugar. Cuando abro aplicaciones en un teléfono en modo apaisado y cambio a la pantalla de aplicaciones recientes, todo lo que veo es un cuadro blanco para esa aplicación, sin imagen previa.

Así es como se ve en un OnePlus 6 cuando abro Chrome en modo retrato y luego abro la pantalla de aplicaciones recientes, y cuando abro Chrome en modo apaisado y luego voy a la pantalla de aplicaciones recientes

Y un comportamiento similar en un Pixel 3:

Abriendo Chrome en modo retrato y en modo apaisado, luego cambiando a aplicaciones recientes

Si le doy tiempo al Pixel 3, eventualmente generará una imagen previa para la aplicación en modo apaisado, aunque aproximadamente la mitad de las veces se ve aplastada y la otra mitad no está actualizada en lo que realmente se mostraba en pantalla.

Mi pregunta es ¿por qué Android parece tener dificultades para generar imágenes previas en modo apaisado para la pantalla de aplicaciones recientes? ¿Alguien más ha experimentado este comportamiento o conoce una solución para ello?

1voto

Andrew T. Puntos 2107

Como desarrollador de Android, lo único de lo que puedo estar seguro es que los cambios en la configuración obligan a reiniciar la actividad. Esto incluye la orientación de la pantalla (vertical, horizontal), por lo que Chrome tiene que ser destruido y recreado, devolviendo un contenido en blanco/obsoleto de paisaje.

De Desarrolladores de Android - Manejar cambios en la configuración

Manejar cambios en la configuración

Algunas configuraciones de dispositivos pueden cambiar durante la ejecución (como la orientación de la pantalla, disponibilidad del teclado y cuando el usuario habilita el modo de multi-ventana). Cuando ocurre un cambio de este tipo, Android reinicia la Activity en ejecución (onDestroy() es llamado, seguido por onCreate()). El comportamiento de reinicio está diseñado para ayudar a tu aplicación a adaptarse a las nuevas configuraciones al recargar automáticamente tu aplicación con recursos alternativos que coincidan con la nueva configuración del dispositivo.

Para manejar correctamente un reinicio, es importante que tu actividad restaure su estado anterior. [...]

(También, lista de cambios en la configuración)

No puedo reproducir este problema en mi dispositivo*, pero por las capturas de pantalla, la lista de aplicaciones recientes siempre se muestra en modo vertical, por lo que hay un cambio de paisaje a vertical entre la activación del evento "lista de aplicaciones recientes" y su visualización. No estoy seguro del orden de los eventos para rotar la pantalla, destruir la aplicación y recrearla, pero posiblemente es destruir-rotar-recrear, por lo que la aplicación aún no está lista para volver a renderizar la actividad (ya que una actividad tampoco puede ejecutarse en segundo plano), devolviendo una pantalla en blanco o utilizando su estado anterior (el contenido obsoleto en paisaje) en su lugar.

La "solución" ― si es posible ― es permitir mostrar la "lista de aplicaciones recientes" en modo horizontal.


*La razón por la que no puedo reproducir este problema es que mi dispositivo permite mostrar la "lista de aplicaciones recientes" en modo horizontal, por lo que la miniatura se muestra correctamente. Sin embargo, cuando roto a vertical estando en la lista, la miniatura se mostrará comprimida como en la captura de pantalla.

También, el reinicio puede ser observado más fácilmente al rotar la pantalla mientras Chrome está activo: después de la rotación, Chrome volverá a renderizar el contenido al espacio disponible actual.

Por último, no sé por qué la lista de aplicaciones recientes está forzada en modo vertical, pero eso está fuera del alcance de la pregunta.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X