Почему не вызывается onConfigurationChanged?

Я пишу код, который меняет текст TextView при изменении ориентации. Я использую onConfigurationChanged () прослушиватель для изменения текста

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!!") } } 

но ничего не происходит даже в журнале

также я добавил этот атрибут в свою активность в файле манифеста

 android:configChanges="orientation" 

Что мне здесь не хватает? также есть ли другой способ достичь этого?

Solutions Collecting From Web of "Почему не вызывается onConfigurationChanged?"

Используйте этот код, чтобы получить конфиденцию

 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(); } } } 

Несколько вещей, чтобы попробовать:

android:configChanges="orientation|keyboardHidden|screenSize" а не android:configChanges="orientation"

Убедитесь, что вы не вызываете setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); в любом месте. Это приведет к тому, что onConfigurationChange () не будет срабатывать.