Как предотвратить перезапуск активности при изменении ориентации устройства только на некоторое время, а не постоянно - PullRequest
1 голос
/ 21 февраля 2012

В моей деятельности в oncreate () выполняется много обработки, например, открытие базы данных, запись файлов на SD-карту.Но вся эта тяжелая обработка происходит только один раз, когда действие запускается в первый раз, а не после этого.Я использую задачу Async для достижения этой цели.

Я использую следующий код для предотвращения перезапуска активности во время изменения конфигурации устройства.

if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT){
                    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
                }
                else {
                    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
                }

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

Ответы [ 3 ]

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

добавьте это в тег активности в файле манифеста

андроида: configChanges = "ориентация | keyboardHidden"

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

Самый простой способ - это setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR). Однако я бы лучше подумал, что говорит STT LCU. Вот несколько статей, которые я бы предложил начать с:

http://developer.android.com/guide/topics/resources/runtime-changes.html

http://www.vogella.de/articles/AndroidPerformance/article.html#lifecycle

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

«Если ты не можешь победить их, присоединяйся к ним», - говорили они.Поэтому вам следует лучше организовать рабочий процесс приложения.

Храните операции, связанные с пользовательским интерфейсом, в стандартных методах жизненного цикла (onCreate, onStart и т. Д.) И требуйте длительной операции для других потоков.

Пожалуйста, обратите внимание на классы AsyncTask и IntentService, они будут очень полезны для вас.

Подводя итог, зачастую проще адаптировать ваш код к базовой системе, чем заставлять саму систему следовать вашей воле

...