Подтвердить что ты не робот

Как предотвратить автоматическое обновление WebView при вращении экрана

Мое приложение. Активность с WebView автоматически обновлялась при повороте экрана и моей активности до первого.

Пример: WebView обрабатывает 3 активности (A, B, C), когда я переключаюсь с A- > B или B-C, затем он возвращается к A. Когда экран вращается.

Мой вопрос: как мы можем сохранить активность в реальном времени на экране экрана?

4b9b3361

Ответ 1

Выделение комментария @kirgy, вы должны добавить orientation|screenSize в свой манифест, если ваш API > 3.2, в некоторых случаях он не будет работать без него.

Ответ 2

Существует несколько способов решения этой проблемы.

Легкий выход - добавить android:configChanges="orientation|screenSize" к соответствующему Activity в манифесте. Установив этот флаг, вы сообщите Android, чтобы он не уничтожил Activity и что вы будете обрабатывать все изменения ориентации (если есть) самостоятельно.

Более современный подход состоял бы в том, чтобы поместить WebView внутрь a Fragment и заставить его сохранить свой экземпляр, используя флаг setRetainInstance(true). Хостинг Activity по-прежнему будет уничтожен при изменении ориентации, но Fragment, содержащий WebView, будет просто отсоединен и повторно подключен без необходимости повторного создания. Вы можете найти пример этой функции в демонстрациях API. Имейте в виду, что библиотека поддержки предлагает реализацию фрагментов, совместимых со стандартами до Honeycomb, поэтому не обманывайте себя уровнем API "обычного" класса Fragment.

Ответ 3

Добавьте android:configChanges="orientation" в файл манифеста, чтобы предотвратить перезагрузку при изменении ориентации экрана.

как::

   <activity android:name=".MyActivity"     
    android:configChanges="orientation"  
    android:label="@string/app_name">

См. this для некоторых ссылок.