Cómo evitar reiniciar la actividad cuando cambia la orientación en Android

Estoy creando una aplicación para Android en la que estoy dibujando una vista en un lienzo. Cuando la orientación del dispositivo cambia, la actividad se reinicia. No quiero que lo haga.

¿Cómo puedo evitar reiniciar la actividad cuando cambia la orientación?

Hay varias formas de hacerlo, pero tal como se

android:configChanges="keyboardHidden|orientation|screenSize" 

Como usted necesita, le permite escuchar en su lugar para los cambios de configuración. A continuación, responde a estos cambios anulando onConfigurationChanged y llamando a setContentView .

Esta es la forma en que lo he estado haciendo, pero me interesaría conocer los pensamientos de otras personas.

Defina su actividad en el AndroidManifest.xml de esta manera:

  <activity android:name="com.name.SampleActivity" android:configChanges="keyboardHidden|orientation|screenSize" android:icon="@drawable/sample_icon" android:label="@string/sample_title" android:screenOrientation="portrait" > </activity> 

Compruebe en su archivo de manifiesto android que ha escrito android:configChanges="orientation" en la actividad ..

Yo recomendaría el uso de Fragmentos. Simplemente puede utilizar setRetainInstance(true) para notificar que desea conservar su fragmento.

Añadir android:configChanges="keyboardHidden|orientation" a su activity

Para los usuarios de xamarin,

Para evitar que la aplicación reinicie el cambio de orientación en Android, agregue
ConfigurationChanges = Android.Content.PM.ConfigChanges.Orientation | Android.Content.PM.ConfigChanges.ScreenSize ConfigurationChanges = Android.Content.PM.ConfigChanges.Orientation | Android.Content.PM.ConfigChanges.ScreenSize al atributo Activity de todas las clases de Activity. Por ejemplo, a continuación se muestra mi código de demostración

  [Activity(Label = "DemoApp", ConfigurationChanges = Android.Content.PM.ConfigChanges.Orientation | Android.Content.PM.ConfigChanges.ScreenSize)] public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsApplicationActivity { protected override void OnCreate(Bundle bundle) { //Some code here } } 

Cómo evitar el cambio de orientación en Android?
Siga la guía de la API de Android: Gestión de cambios en tiempo de ejecución
Uso de la clase de aplicación: reinicio de la actividad en la rotación de Android

Añada esto a todas sus actividades en el manifiesto.

 android:configChanges="orientation|screenSize" 

Ejemplo:

 <activity android:name=".activity.ViewActivity" android:label="@string/app_name" android:configChanges="orientation|screenSize"/> 

Intento escribir android:configChanges="keyboardHidden|orientation|screenSize" en la etiqueta de la actividad, pero en no funciona.

Intento muchos métodos y nada funciona hasta que agregué android:configChanges="keyboardHidden|orientation|screenSize" para todas las actividades de la aplicación y funciona perfectamente.

Sólo tienes que añadir android: configChanges = "keyboardHidden | orientation | screenSize" para todas las actividades de la aplicación en el archivo de manifiesto

  • Android, App se estrelló en la rotación de la pantalla con el diálogo abierto
  • Android rotar mapa de bits sin hacer una copia
  • Android: Manejo eficiente de la rotación de la pantalla
  • Recomponer Disposición de actividad para reproducir vídeo en pantalla completa cuando se gira la pantalla
  • Android visualiza la transformación de rotación 3D en pantallas de gran resolución
  • Android: gira la imagen en la vista de la imagen por un ángulo
  • ¿Cómo restaurar la posición de desplazamiento de texto tras la rotación de la pantalla?
  • Rotar una imagen en Android sin OutOfMemoryError o downscaling
  • Obtener nueva posición de coordenadas después de la rotación con Matrix
  • Establecer vista de imagen después del cambio de orientación
  • Cómo iframe un video de youtube en HTML para teléfonos Android para poder ver y rotar a pantalla completa?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.