Приложение, использующее libgdx, перезапускается всякий раз, когда устройство вращается - PullRequest
3 голосов
/ 05 января 2012

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

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

    if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    }

Как я могу предотвратить это обнаружение вращения?

Ответы [ 3 ]

7 голосов
/ 05 января 2012

Поместите android:screenOrientation="portrait" в тег активности в файле AndroidManifest.xml.Этот атрибут определяет, что это конкретное действие всегда должно выполняться в портретном режиме, и поэтому Android не будет пытаться изменить ориентацию экрана при повороте.

2 голосов
/ 03 апреля 2014

Ответ Кими верный, но если вы хотите запустить свою игру также на устройстве Amazon, вам следует добавить дополнительное значение «screenSize».Таким образом, результат будет:

android:configChanges="keyboard|keyboardHidden|orientation|screenSize"

2 голосов
/ 06 сентября 2013

Вы также хотите добавить

android:configChanges="keyboard|keyboardHidden|orientation"

, чтобы предотвратить перезапуск при появлении или скрытии клавиатуры.

Если вы используете это, вы можете даже удалить android:screenOrientation="portrait", если хотите, чтобы ваша игра работала как в альбомном, так и в портретном режиме. Смотрите вики libgdx: https://code.google.com/p/libgdx/wiki/ApplicationConfiguration#The_.xml_File

...