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