为什么当 Adapter 不再存在时 Fragment 会重新创建自己?

Why does Fragment recreate itself when Adapter no longer exist?

我有一个 Activity 创建 FragmentStatePagerAdapter。然后我在 getItem() 中创建 FragmentFragment 需要从 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 将尝试使用用于初始化它的片段管理器来恢复已启动片段的状态。