Intereting Posts
Как вы управляете пользовательской документацией для приложения для Android? Ошибка сборки React-Native – не удалось установить все Почему Glide моргает элемент ImageView, когда notifydatasetchanged Как заставить NFC работать на Android с помощью Qt 5.6 Почему текущий год в дате был сохранен как 3912? Строка состояния становится белой и не отображает содержимое за ней Почему типы сборки отличаются от вкусов продукта? Невозможно переопределить textAllCaps для кнопок в стиле под android 21 ADB нажимает несколько файлов с одним расширением с одной командой Невозможно добавить библиотеку в проект Android в Eclipse Google map v2 Пользовательская информация с двумя кнопками мыши или ImageView Sl4a python уведомить вопрос Никакой активности не найдено для обработки Intent – android.intent.action.OPEN_DOCUMENT Методы getViewTypeCount и getItemViewType для ArrayAdapter Как настроить экранную тему настроек, чтобы выглядеть так?

OnRestoreInstanceState () не вызывается, когда ожидается

В последнее время я столкнулся с некоторыми проблемами с onSaveInstanceState() и onRestoreInstanceState() . У меня есть несколько действий, которые используют эти методы для сохранения состояния в случае, если они очищаются системой. Большинство из них работают, кроме одного, и я понятия не имею, почему.

Что конкретно происходит, так это:

  • У меня работает эмулятор, и инструменты разработчика устанавливают для destroy() всех действий, когда они больше не видны. (Чтобы я мог доказать, что save / restore работают правильно.)
  • Эта активность запущена, и я перехожу к изменению своего состояния.
  • Я запускаю новое действие, пусть оно запускается на мгновение, а затем используйте кнопку «назад», чтобы перейти к предыдущей операции.
  • По возвращении к рассматриваемой Деятельности я замечаю, что состояние по умолчанию вернулось, таким образом, у него нет состояния, которое оно должно.

Я заметил, что onSaveInstanceState() , onCreate() , но имеет нулевой пучок, а onRestoreInstanceState() никогда не вызывается.

Кто-нибудь видел это раньше?

Solutions Collecting From Web of "OnRestoreInstanceState () не вызывается, когда ожидается"

Утилита dev tools, которую вы используете, может не соответствовать ожидаемому поведению.

Если вы хотите протестировать onSaveInstanceState() / onRestoreInstanceState() , проще всего изменить ориентацию ( <Ctrl>-<F11> ). По умолчанию ваша деятельность уничтожается и воссоздается с использованием состояния экземпляра.

По-моему, я выяснил эту проблему, и именно с подробностями я не раскрывал в исходном вопросе.

Одна из вещей, которые я сохраняю в своем комплекте, довольно велика (растровое изображение размером 500×1000 пикселей). Когда я удалил это из моего Bundle, все остальное было сохранено, метод onCreate () был вызван с Bundle, а также вызван onRestoreInstanceState ().

Таким образом, я считаю, что существует пакет максимального размера, который можно сохранить в onSaveInstanceState (), который не документирован. (По крайней мере, насколько я могу судить)

Объяснение того, почему onRestoreInstanceState() не вызывается (или более whiselly: при его вызове), указывается в потоке другого вопроса: onSaveInstanceState () и onRestoreInstanceState ()