Я знаю, что плитка кажется очень запутанной, но да, это случилось с моим приложением.Хорошо, вот история.
Вот ключевые настройки в манифесте:
android:screenOrientation="portrait"
android:configChanges="orientation|screenSize|keyboardHidden"
android:windowSoftInputMode="stateAlwaysHidden|adjustPan"
В моем файле Activity.java я также переопределяю onConfigurationChanged(Configuration config)
, который будет распечатывать текущую ориентацию.
Вот самая интересная часть.Я запускаю вращаемое приложение, скажем «Галерея» (предположим, оно может вращаться), из моего приложения в альбомной ориентации с использованием Intent.Держите телефон в горизонтальном положении и нажмите клавишу возврата.Вновь запущенное действие, в данном случае Галерея, закроется, и мое приложение перезапустится.Теоретически мое приложение должно отображаться в портретной ориентации, поскольку я установил screenOrientation
в портретную ориентацию.Однако на самом деле мое приложение просто остается в портретном режиме в течение 1 секунды, а затем переходит в альбомную ориентацию и снова переходит в портретную ориентацию.
Я запускаю поток, чтобы распечатать requestedOrientation
моего приложения после вызова onRestart
.И я выясняю, что на выходе всегда «1», то есть «портрет».Тем не менее, вывод onConfigurationChanged
дает мне текущую ориентацию ландшафта!
Итак, я в полном замешательстве.Как это может случиться?Может кто-нибудь дать мне совет?