Почему Fragment воссоздает себя, когда адаптер больше не существует?

У меня есть Activity, который создает FragmentStatePagerAdapter. Затем я создаю Fragment внутри getItem(). Fragment необходимо получить некоторые данные из Activity, которые необходимо будет синхронизировать в облаке.

Это отлично работает для первой загрузки. Adapter инициируется после получения ответа от сервера. Таким образом, Fragment всегда будет иметь под рукой данные, поскольку они создаются внутри Adapter, который создается после того, как у меня есть данные. Однако это ломается, когда ОС воссоздает файл Activity. Пока Activity все еще работает и получает данные с сервера, Fragment начал свое воссоздание. Хотя Adapter еще не создан в новом Activity. Самое странное, что даже после того, как я создаю новый Adapter, я не вижу никаких вызовов в новом Fragment.

1
0
70
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Согласно документации FragmentStatePagerAdapter:

Реализация {@link PagerAdapter}, которая использует {@link Fragment} для управления каждой страницей. Этот класс также обрабатывает сохранение и восстановление состояния фрагмента.

Это означает, что ViewPager, которым вы инициализировали свой адаптер, попытается восстановить состояние инициированных фрагментов с помощью диспетчера фрагментов, с которым он был инициализирован.

Другие вопросы по теме