Приложение AndEngine перезапускается при нажатии кнопки питания - PullRequest
1 голос
/ 11 марта 2012

Я написал приложение, которое воспроизводит музыку, используя AndEngine. Раздражающая проблема заключается в том, что, когда пользователь нажимает кнопку питания или экран автоматически выключается, после повторного нажатия кнопки питания приложение перезапускается и не возобновляет работу. Я нашел эту и эту страницу , но они мне не помогли. Не могли бы вы помочь мне? Спасибо.

Ответы [ 3 ]

4 голосов
/ 16 марта 2012

Просто добавьте эту строку в файл манифеста, где вы объявили о своей активности

android: configChanges = "direction | keyboard | keyboardHidden"

, например,

<activity android:name="com.algo.MainActivity"
            android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
            android:configChanges="orientation|keyboard|keyboardHidden" />
3 голосов
/ 11 марта 2012

В вашей игре AndEngine есть хотя бы одно действие.

Каждое действие имеет собственный жизненный цикл от onCreate до onDestroy . Взгляните на картинку и очень подробную статью здесь: Деятельность жизненного цикла

Ваша игровая активность проходит через циклы и автоматически умирает, когда пользователь нажимает PowerButton или BackButton . Когда вы включаете питание, активность начинается с начала ( onCreate ).

Вы должны реализовать сохранить и загрузить игровые функции и сохранить игровое состояние при onPaused обратном вызове и загрузить игровое состояние onResume обратный вызов. Это предотвратит потерю состояния вашей игры между перезапусками активности.

Еще одна хорошая статья об управлении состояниями для игр для Android: Больше игр для Android, в которые приятно играть

1 голос
/ 26 июня 2013

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

ваш телефон Android находится в портретном режиме, а ваше приложение AndEngine находится в горизонтальном режиме, или ваш телефон Android находится в альбомном режиме, а ваше приложение AndEngine находится впортретный режим.

Постарайтесь, чтобы ориентация приложения соответствовала вашей системе Android.

...