studio programacion herramientas fundamentos con avanzado aplicaciones android android-activity orientation

programacion - manual de android en pdf



Android, ¿cómo no destruir la actividad cuando giro el dispositivo? (6)

Tengo una aplicación que funciona solo en modo retrato, y he realizado los cambios en mi archivo de manifiesto para cada actividad, la orientación es vertical. Pero cuando giro el dispositivo, la actividad vuelve a crearse. ¿Cómo no destruir la actividad?


Del documento oficial que dijo flurin,

Nota: Si su aplicación se dirige al nivel API 13 o superior (según lo declarado por los atributos minSdkVersion y targetSdkVersion), también debe declarar la configuración de "tamaño de pantalla", porque también cambia cuando un dispositivo cambia entre orientación vertical y paisaje.

Por lo tanto, si su aplicación se dirige al nivel de API 13 o superior, debe establecer esta configuración en su lugar:

android:configChanges="orientation|screenSize"


Estuve estropeando esto un poco y luego reinterpreté que dentro del archivo Manifest estaba colocando los configChanges en el nivel de la Aplicación y no en el Nivel de Actividad. Aquí es cómo se ve el código cuando funciona correctamente para mí.


La solución correcta es

android: configChanges = "orientation | screenSize"

Documentación de Android:

El tamaño de pantalla actual disponible ha cambiado. Esto representa un cambio en el tamaño disponible actualmente, relativo a la relación de aspecto actual, por lo que cambiará cuando el usuario cambie entre paisaje y retrato. Sin embargo, si su aplicación se dirige al nivel API 12 o inferior, su actividad siempre maneja esta configuración por sí misma (este cambio de configuración no reinicia su actividad, incluso cuando se ejecuta en un dispositivo con Android 3.2 o superior).



Para API 12 y abajo : agregar

android:configChanges="orientation"

Agregue "screenSize" si se dirige a la API 13 o superior, ya que cada vez que cambie su orientación también lo hará su tamaño de pantalla, de lo contrario, los dispositivos nuevos continuarán destruyendo su actividad. Consulte la respuesta de Egg a continuación para obtener más información sobre el uso de "screenSize"

android:configChanges="orientation|screenSize"

a su actividad en AndroidManifest.xml. De esta forma, tu Actividad no se reiniciará automáticamente. Ver la documentación para más información


escribir en manifiesto:

android:configChanges="orientation|screenSize|keyboardHidden"

y anule esto en actividad que resolvió su problema:

@Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); }