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"
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).
Mire este código en la imagen flotante. Tiene la forma más interesante de manejar la rotación de pantalla. http://code.google.com/p/floatingimage/source/browse/#svn/trunk/floatingimage/src/dk/nindroid/rss/orientation
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);
}