Intereting Posts
Круговой макет Установить состояние BottomSheetDialogFragment для расширенного Android SDK скачать с Eclipse, получение сообщения об ошибке: Не удалось создать каталог C: / Невозможно изменить цвет кнопки радио на Android Gradle для Android AAR в зависимости от AAR, оба в одном удаленном репозитории? ClickView TextView в Android Android: как загрузить xml-файл из каталога ресурсов? Android MVP open Activity from Presenter, анти-шаблон? Ограничить (ограничить) установку приложений на одну учетную запись (с учетом уникальных устройств) в Android Проект «appcompat_v7» создается автоматически после создания нового проекта в Eclipse Проблема с глубоким связыванием Android! Как использовать схему пользовательского URL-адреса myapp: // some_data Как включить круглую ссылку в RelativeLayout? ClassCastException: RestTemplate возвращает List <LinkedHashMap> вместо списка <MymodelClass> Как заставить Alarm Manager работать, когда Android 6.0 в режиме «Дозировка»? SL4A против Ruboto в разработке приложений для Android

Android, как не уничтожать активность при повороте устройства?

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

Solutions Collecting From Web of "Android, как не уничтожать активность при повороте устройства?"

Для API 12 и ниже : добавьте

android:configChanges="orientation" 

Добавьте «screenSize», если вы ориентируетесь на API 13 или выше, потому что, когда ваша ориентация меняется, так и размер вашего экрана, в противном случае новые устройства будут продолжать уничтожать вашу деятельность. См. Ответ Egg ниже для получения дополнительной информации об использовании "screenSize"

 android:configChanges="orientation|screenSize" 

К вашей деятельности в AndroidManifest.xml. Таким образом, ваша активность не будет перезапущена автоматически. См. Документацию для получения дополнительной информации.

Из официального документа Flurin сказал:

Примечание. Если ваше приложение нацелено на уровень API 13 или выше (как указано атрибутами minSdkVersion и targetSdkVersion), вы также должны объявить конфигурацию «screenSize», так как она также изменяется, когда устройство переключается между портретной и альбомной ориентацией.

Поэтому, если ваше приложение нацелено на уровень API 13 или выше, вы должны установить этот вариант:

android:configChanges="orientation|screenSize"

Правильное решение

андроид: configChanges = "ориентация | Размер экрана"

Документация для Android:

Измененный текущий размер экрана изменился. Это означает изменение текущего доступного размера относительно текущего соотношения сторон, поэтому он изменится, когда пользователь переключится между пейзажем и портретом. Однако, если ваше приложение нацелено на уровень API 12 или ниже, ваша деятельность всегда обрабатывает это изменение самой конфигурации (это изменение конфигурации не перезапускает вашу активность даже при работе на устройстве Android 3.2 или выше).

Пишите в манифест:

 android:configChanges="orientation|screenSize|keyboardHidden" 

И переопределить это в действии, которое решило вашу проблему:

  @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); } 

Посмотрите на этот код в Floating Image. Он имеет самый интересный способ обработки вращения экрана. http://code.google.com/p/floatingimage/source/browse/#svn/trunk/floatingimage/src/dk/nindroid/rss/orientation