Intereting Posts
Иконка панели инструментов Два фрагмента на одной странице viewpager Как передавать данные между фрагментами Android Relative Layout alignCenter с другого вида Android: как пометить смс, как читать в onReceive Попытка вручную подписать пакет android с помощью jarsigner.exe и установить с помощью adb.exe Адаптер NFC Firemonkey для Android Ошибка TextInputLayout после ввода значения в edittext Как остановить навигацию по ActionBar Tab для отображения в качестве счетчика, когда он становится слишком длинным? В чем разница, когда я создаю объект Android WebView с помощью ContextWrapper и контекста? Android-виджет не обновляется – имеет неправильный идентификатор виджетов Как отобразить представление списка в диалоговом окне Android Alert? Как поток, созданный приложением, можно рассматривать как другое приложение из ContentProvider приложения? Ошибка java.lang.IndexOutOfBoundsException: недопустимый индекс 0, размер 0 в моей программе android Почему это конкретное устройство не может быть перечислено UsbManager.getDevicesList ()?

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