Android - Изменение ориентации - выходит из приложения, но без сбоев - PullRequest
1 голос
/ 02 сентября 2010

Посмотрел другие посты, но не увидел ответа, который искал ...

У меня есть два макета: layout-port и layout-land.
Если я запускаю приложениес эмулятором или устройством, вертикально или горизонтально, приложение работает нормально с правильными макетами.

Однако, если я поверну эмулятор или устройство, приложение закроется.Там нет сбоев, perse ', он просто выходит.

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

Основные различия между тем, что работает, и этим (у этого есть):
* Меню с подменю
* Диалоговые экраны (не виджет диалога Android)
* Виджет вкладок

Все вышеперечисленные элементы работают в соответствующих макетах (порт и земля), приложение просто закрывается при повороте эмулятора или устройства иМне нужно перезапустить приложение.

Есть рекомендации?Спасибо alt text

Манифест:

(удалено)

Ответы [ 2 ]

4 голосов
/ 03 сентября 2010

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

android:configChanges="keyboard|keyboardHidden|orientation"

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

0 голосов
/ 03 сентября 2010

Вы пытались добавить android:configChanges="orientation" к объявлению своей деятельности в манифесте? Обычно, когда конфигурация изменяется, действие отключается и перезапускается. Добавление этого «флага» предотвращает это и вызывает метод onConfigurationChanged().

...