¿Cómo detectar los cambios de orientación pero dejar que el android los maneje?

Tengo un problema muy similar a esto: Android – ActionBar no cambiar el tamaño con onConfigurationChanged (AppCompat)

Necesito dejar android manejar los cambios de orientación, porque quiero obtener la actividad recreada.

Pero también, necesito detectar cuando se ha producido un cambio de orientación.

¿Pueden lograrse simultáneamente estas dos necesidades combinadas?

Para detectar la rotación de la Actividad sin interferir con su curso , puede hacer lo siguiente:

@Override public void onConfigurationChanged(Configuration config) { super.onConfigurationChanged(config); // Check for the rotation if (config.orientation == Configuration.ORIENTATION_LANDSCAPE) { Toast.makeText(this, "LANDSCAPE", Toast.LENGTH_SHORT).show(); } else if (config.orientation == Configuration.ORIENTATION_PORTRAIT){ Toast.makeText(this, "PORTRAIT", Toast.LENGTH_SHORT).show(); } } 

Además, usted necesita que usted tiene que asegurarse de que, en su manifiesto, su actividad permite configChanges para la rotación

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

Importante : A partir de Android 3.2 (API 13+), el "tamaño de pantalla" también cambia cuando el dispositivo cambia entre orientación vertical y horizontal. Si desea evitar que el tiempo de ejecución se reinicie debido al cambio de orientación al desarrollar para ese nivel de API específico (13+), asegúrese de declarar: android:configChanges="orientation|screenSize"

– // –

EDITAR

Utilizando el atributo configChanges , su actividad no se recreará cuando cambie la configuración .

Puedes encontrar más información en la documentación de Google aquí

Android: configChanges

Muestra los cambios de configuración que la actividad se manejará. Cuando se produce un cambio de configuración en tiempo de ejecución, la actividad se cierra y se reinicia de forma predeterminada, pero declarar una configuración con este atributo evitará que la actividad se reinicie. En su lugar, la actividad permanece en ejecución y se llama a su método onConfigurationChanged ().

Lo que puedes hacer es controlar la rotación con una bandera, y si onConfigurationChanged() es llamado, puedes llamar a la actividad onCreate() tú mismo. Si no es así, onCreate () será llamado sólo cuando la Actividad se instancia por primera vez

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