Я создаю приложение Android с тремя вкладками, реализованными с использованием ViewPager и Fragment.
На этих вкладках у меня есть настраиваемое представление Recycler для отображения данных. Все фрагменты создаются динамически.
Каждый раз, когда приложение переходит в фоновый режим, я изменяю некоторые системные настройки и переключаюсь обратно в приложение, все приложение воссоздается заново, и состояние фрагментов теряется.
Итак Я попытался сохранить FragmentTags в HashMap в методе MainActivity внутри onSaveInstanceState(Bundle)
, заполнив HashMap из метода внутри класса фрагмента.
Я успешно получил все теги в MainActivity.
Когда я сохраняю объекты с использованием getFragmentSupportManager().findFragmentByTag("myTag")
в методе onRestoreInstanceState(Bundle)
ссылка на объект была изменена.
Пример:
Когда фрагмент был создан впервые
BlankFragment{10ef54a (b6c32b5a-a2a9-4c40-a5db-07c93a2bb08a) id=0x7f080130 android:switcher:2131231024:0}
После любого изменения конфигурации
BlankFragment{c125fc8 (b6c32b5a-a2a9-4c40-a5db-07c93a2bb08a) id=0x7f080130 android:switcher:2131231024:0}
«BlankFragment» - это имя класса фрагмента .
Если тег остался прежним, почему изменилась ссылка на объект?
Как сохранить предыдущее состояние фрагмента?