Intereting Posts
Android-изображение для изображений получает пиксельный цвет от масштабированного изображения Могу ли я копировать между CouchBase на Android и Couch DB, работающим в Linux? Ошибка жизненного цикла виртуального фрагмента Не найден ресурс, который соответствует указанному имени (в 'layout_alignTop' со значением '@ id / imageView3') Создание проекта в Android 5.0 Lollipop с использованием Eclipse Juno Android: передача данных вперед и назад с использованием намерения setResults Не удается запустить Android ServiceTestCase. Отформатируйте относительную дату в формате, удобочитаемом человеком, на Android, используя Android DateUtils API Использование родителей для использования ресурсов Android RxJava, без блокировки? Как добавить маркер / контакт на ImageView Android? Как заставить Android-приложение использовать 32-битные или 64-битные библиотеки Перемещение и исчезновение строк кода; Проблема с XML-редактором Eclipse Автоматизация выбора номера в android с использованием эспрессо Заполнение счетчика непосредственно в макете xml

Android предотвращает восстановление активности

У меня есть viewpager, содержащий много фрагментов. Когда действие отправляется на задний план и когда нужны ресурсы, ОС будет убивать приложение или, по крайней мере, некоторые фрагменты. Когда я возвращаюсь к активности, он падает, потому что активность пытается присоединить новые экземпляры всех фрагментов, которые она провела перед очисткой, и теперь некоторые поля имеют нулевое значение. Это, конечно же, можно было бы исправить, правильно выполнив сохранение состояния и восстановление с помощью Bundles, но я не хочу этого делать. Вместо этого я хочу предотвратить восстановление фрагментов. Есть ли способ сообщить OS, что после отправки GC и уничтожения фрагментов он не должен беспокоить их воссоздание вообще? Как только очистка произойдет, я хочу, чтобы активность была просто воссоздана по возвращении, как если бы пользователь запустил ее, нажав на значок. Есть ли шансы на это?

Предлагаемое решение здесь https://stackoverflow.com/a/15683289/552735 не работает. Он вызывает исключения java.lang.IllegalStateException: Fragement больше не существует для ключа f2: index 3

Solutions Collecting From Web of "Android предотвращает восстановление активности"

У меня была проблема именно так. Вот как я его исправил:

  @Override protected void onSaveInstanceState(Bundle savedInstanceState) { savedInstanceState.clear(); } 

Обратите внимание, что этот метод гарантирует, что информация о состоянии пользовательского интерфейса не будет сохранена, когда активность будет убита системой, – это также приводит к восстановлению каких-либо представлений, когда onRestoreInstanceState() с тем же Bundle после onStart() .

Вы не можете отключить действия состояния экземпляра save / restore. Если вы не хотите реализовать эту логику, вам необходимо перезагрузить форму, особенно если ваша форма сильно загружена фрагментами.

 @Override protected void onRestoreInstanceState(Bundle savedInstanceState) { super.onRestoreInstanceState(savedInstanceState); startActivity(new Intent(this,YOUR_ACTIVITY.class)); finish(); }