Android: помогите справиться с изменением ориентации экрана - PullRequest
2 голосов
/ 18 февраля 2012

Я делаю простой таймер как часть приложения для Android, используя обработчик для вызова runnable, который обновляет пользовательский интерфейс.Однако, когда пользователь меняет ориентацию экрана, приложение перезапускается.Я посмотрел на onSaveInstanceState (), но это мне не поможет.

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

Есть идеи, как это исправить?(кроме исправления ориентации экрана)

Спасибо!

Ответы [ 5 ]

2 голосов
/ 18 февраля 2012

Если вы хотите зафиксировать свою ориентацию в альбомной / портретной ориентации, используйте этот код:

<activity android:name=".MainMenuActivity" android:screenOrientation="landscape" android:configChanges="keyboard|keyboardHidden|orientation" />

или просто хотите справиться с усталостью, даже если изменилась ориентация, попробуйте следующее:

<activity android:name=".MainMenuActivity" android:configChanges="keyboard|keyboardHidden|orientation" />

Надеюсь, это решит вашу проблему.

Наслаждайтесь.:)

2 голосов
/ 18 февраля 2012

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

android:configChanges="orientation|keyboardHidden"
1 голос
/ 18 февраля 2012

Используйте это:

android:configChanges="orientation|keyboard"

Пример:

<activity android:name=".HomeActivity" android:configChanges="orientation|keyboard" />
0 голосов
/ 18 февраля 2012

Вы можете переопределить onPause () и onResume () для обработки этих событий. onPause () запускается непосредственно перед изменением ориентации (или в самом начале) и onResume справа после (или в самом конце). Если вы используете этот подход, вы можете сохранить свои данные с SharedPreferences.

Вы также можете сохранить свои данные, используя onSaveInstanceState () и onRestoreInstanceState (), что может быть лучшим подходом.

Срок действия активности Android

SharedPreferences

InstanceState

0 голосов
/ 18 февраля 2012

Вы должны использовать фоновый сервис для таймера, чтобы он не останавливался при изменении ориентации.

...