为什么当 Adapter 不再存在时 Fragment 会重新创建自己?
Why does Fragment recreate itself when Adapter no longer exist?
我有一个 Activity
创建 FragmentStatePagerAdapter
。然后我在 getItem()
中创建 Fragment
。 Fragment
需要从 Activity
抓取一些数据,这将需要在云端同步数据。
这对于第一次加载非常有效。 Adapter
在 响应从服务器返回后启动。因此 Fragment
将始终有方便的数据,因为它是在 Adapter
中创建的,而 在 我有数据之后创建。然而,当 OS 重新创建 Activity
时,这会中断。当 Activity
仍然是 运行 并从服务器获取数据时,Fragment
开始重新创建。尽管 Adapter
尚未在新的 Activity
中创建。最奇怪的是,即使在我创建了一个新的 Adapter
之后,我也没有看到在新的 Fragment
.
中发生任何调用
根据FragmentStatePagerAdapter
的文档:
Implementation of {@link PagerAdapter} that uses a {@link Fragment} to manage each page. This class also handles saving and restoring of fragment's state.
这意味着您用来初始化适配器的 ViewPager
将尝试使用用于初始化它的片段管理器来恢复已启动片段的状态。
我有一个 Activity
创建 FragmentStatePagerAdapter
。然后我在 getItem()
中创建 Fragment
。 Fragment
需要从 Activity
抓取一些数据,这将需要在云端同步数据。
这对于第一次加载非常有效。 Adapter
在 响应从服务器返回后启动。因此 Fragment
将始终有方便的数据,因为它是在 Adapter
中创建的,而 在 我有数据之后创建。然而,当 OS 重新创建 Activity
时,这会中断。当 Activity
仍然是 运行 并从服务器获取数据时,Fragment
开始重新创建。尽管 Adapter
尚未在新的 Activity
中创建。最奇怪的是,即使在我创建了一个新的 Adapter
之后,我也没有看到在新的 Fragment
.
根据FragmentStatePagerAdapter
的文档:
Implementation of {@link PagerAdapter} that uses a {@link Fragment} to manage each page. This class also handles saving and restoring of fragment's state.
这意味着您用来初始化适配器的 ViewPager
将尝试使用用于初始化它的片段管理器来恢复已启动片段的状态。