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 ()