假设我有一个同质项目列表,在我的活动生命周期中,用户交互或操作系统事件可能会改变这些项目。Activity
包含 a ,FragmentPager
其中显示了许多ListFragment
s。
这些片段共享前面提到的数据,但以不同的方式显示。例如,它们的排序顺序不同或仅显示数据的子集。目前,每个片段都保留一个单独的列表,其中包含按相应顺序的数据的相应部分。
当数据发生变化时,基本上每个片段都必须更新。这意味着从某些片段中重新使用或添加/删除项目。保持不同片段中的数据一致的最佳做法是什么?
目前我有某种观察者对象,当发生变化时会通知它,然后通知连接的片段。但是有几个问题:
- 应用刚启动的时候,有些fragment还没有被FragmentPager创建,所以通知他们是不可能的。
- 在浏览片段时,其中一些会暂停。在这种状态下,他们无法更新他们的列表。在这种情况下,他们是否应该与观察者断开连接?这将导致:
- 当发生变化时,当一个片段断开连接时,它基本上会错过它。
- 等等...