Evitar que la aplicación se reinicie durante el cambio de orientación

Tengo un lienzo, y se vuelve a dibujar cuando se cambia la orientación. Es un lienzo personalizado no Android proporcionado.

Cuando se cambia el diseño de la pantalla, se restablece el estado de la aplicación y (todos los estados de la vista). He cambiado la orientación de la pantalla a sólo retrato; mantiene la disposición de la pantalla sin cambios, pero la aplicación se vuelve a poner a cero.

Revisé la documentación y encontré que la actividad se destruye y se reinicia de nuevo cuando ocurre el cambio de orientación. Savestate () no puede guardar y cargar datos de mapa de bits o datos grandes que son requeridos por mi lienzo personalizado.

Volví a comprobar la documentación, y encontró el tema de cambios de tiempo de ejecución de manipulación, que mencionó onConfigurationChanged () que se llama cuando se produce cambio de configuración específica, que en mi caso es "orientación". Este método impide reiniciar y deja al desarrollador cómo debe implementarse ese cambio de configuración. Incluso mencionó en el último párrafo que si no implementar ese método entonces esto sólo hará que la actividad para saltar onRestart () y no hará nada. Estoy estableciendo archivo de manifiesto como

android:screenOrientation="portrait" android:configChanges="orientation" 

Y no estoy implementando onConfigurationChanged (). Pero esto no ayuda tampoco. No sé por qué. Me pareció tan útil.

Publique la solución si tiene alguna. Además, la aplicación toma un tiempo razonable, y me gustaría que la aplicación no se reinicie cuando se cambia la orientación. En realidad no quiero hacer nada cuando esto sucede. Estoy usando el emulador también, así que por favor aclare si es problema del emulador solamente.

PS Mi conexión a Internet está inactiva y estoy usando mi estúpido cliente móvil. He comprobado la documentación sin conexión. Y por favor, tenga paciencia conmigo para la ortografía. Estoy tratando de encontrar una solución, pero actualmente estoy trastornado.

Usa esto en AndroidMenifest.xml

 <activity android:name="MyActivity" android:configChanges="orientation|keyboard|keyboardHidden" android:screenOrientation="sensor" /> 

escribe este código en el manifiesto:

 android:configChanges="orientation|screenSize|keyboardHidden" 

Para cada actividad en AndroidManifest, se puede especificar screenOrientation. Por ejemplo, para especificar que la actividad siempre permanece en modo vertical, se puede agregar lo siguiente al elemento de actividad:

android: screenOrientation = "retrato"

Del mismo modo, el modo horizontal se puede especificar utilizando lo siguiente:

android: screenOrientation = "paisaje"

Sin embargo, el anterior todavía hace que la actividad sea destruida y reiniciada cuando un teclado duro se desliza hacia fuera. Por lo tanto, un tercer método es posible: Dígale al sistema Android que la aplicación debe manejar la orientación y el teclado slide-out events.This se hace por agregando el siguiente atributo al elemento de actividad: android: configChanges = "orientation | keyboardHidden"

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.