¿Por qué no se llama a OnConfigurationChanged?

Estoy escribiendo un código que cambia el text de TextView cuando se cambia la orientación. Estoy usando el oyente onConfigurationChanged () para cambiar el text.

override fun onConfigurationChanged(newConfig: Configuration?) { super.onConfigurationChanged(newConfig) val orientation : Int = getResources().getConfiguration().orientation val oTag = "Orientation Change" if(orientation == (Configuration.ORIENTATION_LANDSCAPE)){ mytext?.setText("Changed to Landscape") Log.i(oTag, "Orientation Changed to Landscape") }else if (orientation == (Configuration.ORIENTATION_PORTRAIT)){ mytext?.setText("Changed to Portratit") Log.i(oTag, "Orientation Changed to Portratit") }else{ Log.i(oTag, "Nothing is coming!!") } } 

pero nada sucede ni siquiera en el Log

también he agregado este atributo a mi Actividad en file de manifiesto

 android:configChanges="orientation" 

Que me estoy perdiendo aqui ? también hay alguna otra forma de lograr esto?

Usa este código para get el confi chage

 override fun onConfigurationChanged(newConfig: Configuration?) { super.onConfigurationChanged(newConfig) if (newConfig != null) { if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { Toast.makeText(this, "landscape", Toast.LENGTH_SHORT).show(); } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) { Toast.makeText(this, "portrait", Toast.LENGTH_SHORT).show(); } } } 

Un par de cosas para probar:

android:configChanges="orientation|keyboardHidden|screenSize" lugar de android:configChanges="orientation"

Asegúrese de no estar llamando a setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); en cualquier sitio. Esto causará que el Cambio de configuration () no se active.