Как определить ориентацию экрана до создания деятельности? - PullRequest
0 голосов
/ 21 июля 2011

Я определил свою деятельность только в портретном режиме: андроид: screenOrientation = "портрет"

Когда я делаю снимок с помощью функции камеры через намерение, делаю снимок в ландшафтном режиме и при сохранении переключаю экран в портретный режим, я снова возвращаюсь к своей деятельности. Чего я не понимаю, так это того, что моя деятельность в течение короткого времени находится в ландшафтном режиме, уничтожается, а затем строится снова в портретном режиме ... поскольку моим функциям onCreate ond onRestore требуется некоторое время, время ожидания пользователя удваивается. .

Есть ли обходной путь или что-то еще?

Ответы [ 2 ]

1 голос
/ 21 июля 2011

Вы также можете зарегистрировать свою деятельность для явной обработки любых изменений ориентации, добавив android:configChanges="orientation" к определению активности, а затем переопределив метод onCofigurationChanged в своей деятельности, например:

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}

Я не уверен, поможет ли это с вашей конкретной проблемой, но я помню, как делал это, когда хотел, чтобы действие отображалось только в портретном режиме. Дайте мне знать, если это поможет:)

0 голосов
/ 21 июля 2011

Добавьте android:configChanges="orientation" к вашему тегу <activity>.Таким образом, действие не будет воссоздано при изменении ориентации, а просто получит обратный вызов onConfigurationChanged, который можно игнорировать.

...