Как я могу запретить Android Activity кратковременно переходить в портретный режим, если у меня указан ландшафт?

Я указал, что моя активность должна быть привязана к ландшафту, который работает большую часть времени.В частности, когда Activity уже запущена, и я запускаю ее новый экземпляр из Eclipseдействие начинается в книжной ориентации и немедленно изменяется на альбомную - но не раньше, чем представлению уже было сказано, что это портретная деятельность.Таким образом, мой вид инициализируется как портрет, но сразу получает поверхность изменена.

В моем манифесте указано следующее:

    <activity android:screenOrientation="landscape"
        android:configChanges="orientation|keyboardHidden"

Я также попробовал:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

Когда я нацелился на уровень API 7, я считаю, что это работало нормально. Теперь я нацеливаюсь на API level8, и появилась странная причуда.

В методе oncreate значение:

getResources().getConfiguration().orientation

является:

Configuration.ORIENTATION_PORTRAIT

Сразу после создания действия, ориентация меняется на Пейзаж, я получаюsurfacechangedи я могу все исправить. Но почему это всегда портрет?

Я подозреваю, что это связано с тем, что приложение автоматически запускается при запуске с портретного экрана. Кажется странным, что приложение, которое НИКОГДА не было указано в портретном режиме, запускается таким образом, а затем быстро изменяется.

Но есть ли способ не допустить, чтобы это было в портрете?

Я положил это в моей деятельностиonCreate:

while (getResources().getConfiguration().orientation != Configuration.ORIENTATION_LANDSCAPE) 
{
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}

Это привело к тому, что он застрял там навсегда :)

Ответы на вопрос(2)

Ваш ответ на вопрос