onConfigurationChanged не вызывается после возврата из действия с другими настройками экранной ориентации - PullRequest
1 голос
/ 07 марта 2019

У меня есть две операции:

<activity
    android:name=".ui.MainActivity"
    android:configChanges="orientation|screenSize" />
<activity
    android:name=".ui.DetailActivity"
    android:screenOrientation="landscape" />

На некоторых устройствах / эмуляторах возникает странная ошибка: когда я возвращаюсь из DetailActivity в MainActivity, устройство больше не вызывает onConfigurationChangedпока я не нажму на пункт меню опций.После того, как я нажал OptionsMenu, он работает нормально.Откройте OptionsMenu программно, но не работает.Еще более запутанным является то, что это происходит только на нескольких устройствах или эмуляторах с разными версиями Android.

Ответы [ 2 ]

0 голосов
/ 08 марта 2019

Я нашел обходной путь, в MainActivity я звоню requestedOrientation с небольшой задержкой.

override fun onResume() {
    super.onResume()
    Handler().postDelayed(Runnable {
        requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED
    }, 500)
}
0 голосов
/ 07 марта 2019

Вы называли этот код?

    @Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
    super.onRestoreInstanceState(savedInstanceState);
}

@Override
public void onSaveInstanceState(Bundle outState, PersistableBundle outPersistentState) {
    super.onSaveInstanceState(outState, outPersistentState);
}
...