Como posso evitar que o Android Activity entre brevemente no modo retrato quando especifiquei paisagem?

Eu especifiquei que minha atividade deve ser corrigida para paisagem, o que funciona na maior parte do tempo.Especificamente, quando a Activity já está em execução e eu inicio uma nova instância dele a partir do Eclipse, a Atividade começa em Retrato e muda imediatamente para Paisagem - mas não antes que a Visualização já tenha sido informada de que era Retrato.Então, meu View é inicializado como Portrait, mas recebe um surfaceChanged imediatamente.

Eu tenho o seguinte especificado no meu manifesto:

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

Eu também tentei:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

Quando eu estava segmentando o nível 7 da API, acredito que isso funcionou bem. Agora eu segmento o nível 8 da API e uma peculiaridade estranha apareceu.

No método oncreate, o valor de:

getResources().getConfiguration().orientation

é:

Configuration.ORIENTATION_PORTRAIT

Imediatamente após criar a Atividade, a orientação é alterada para Paisagem, eu recebo umasurfacechangede eu posso "consertar" tudo. Mas por que é sempre retrato?

Eu suspeito que tem a ver com o fato de que o aplicativo é auto-rotulado quando ele é iniciado a partir de uma tela de retrato. Parece estranho que o aplicativo, que foi instruído para NUNCA estar em retrato, comece dessa forma e, em seguida, mude rapidamente.

Mas, existe uma maneira de não permitir que ele fique em retrato?

Eu coloquei isso na minha atividadeonCreate:

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

Isso resultou em ficar preso lá para sempre :)

questionAnswers(2)

yourAnswerToTheQuestion