Ответ 1
Решение состоит в том, чтобы добавить
android:configChanges="orientation|keyboardHidden|screenSize"
в элементе <activity>
в AndroidManifest.xml
.
Когда я нажимаю кнопку питания, экран выключается (полностью темный), система разрушает мою активность, а затем воссоздает ее:
03-28 22:48:00.934: V/[BB](5809): [GameControl] onPause
03-28 22:48:01.444: V/[BB](5809): [GameControl] onDestroy
03-28 22:48:01.724: V/[BB](5809): [GameControl] onCreate
03-28 22:48:03.016: V/[BB](5809): [GameControl] onResume
03-28 22:48:03.016: V/[BB](5809): [GameControl] onPause
Это вызвано тем, что моя активность имеет фиксированную ориентацию (пейзаж), а экран блокировки - портрет.
Я протестировал эту теорию, установив фиксированную портретную ориентацию, и проблема не возникает. Я также проверил значения getResources(). GetConfiguration():
{ scale=1.0 imsi=724/31 loc=pt_BR touch=3 keys=2/1/1 nav=1/1 orien=2 layout=17 uiMode=17 seq=36}
{ scale=1.0 imsi=724/31 loc=pt_BR touch=3 keys=2/1/1 nav=1/1 orien=1 layout=17 uiMode=17 seq=37}
{ scale=1.0 imsi=724/31 loc=pt_BR touch=3 keys=2/1/1 nav=1/1 orien=2 layout=17 uiMode=17 seq=38}
Как это можно избежать? Я не хочу, чтобы моя активность была уничтожена экраном блокировки!
Решение состоит в том, чтобы добавить
android:configChanges="orientation|keyboardHidden|screenSize"
в элементе <activity>
в AndroidManifest.xml
.
Возможно, в функции onPause()
и onResume()
должен быть код.
Пожалуйста, проверьте аналогичную тему, и здесь, чтобы понять, почему это происходит.
Надеюсь, что это поможет!