比方说,我有一个同质项目列表,这些项目可能会在用户交互或操作系统事件的活动生命周期中进行更改。 Activity
包含FragmentPager
,其显示了多个ListFragment
。保持FragmentPager中的ListFragments同步
这些片段共享之前提到的数据,但以不同方式显示。例如。它们在排序顺序上不同或仅显示一部分数据。目前,每个片段都保持一个单独的列表,其中包含相应顺序中数据的相应部分。
当数据发生变化时,基本上每个片段都必须更新。这意味着诉诸或添加/删除某些片段的项目。 保持不同片段中数据一致的最佳做法是什么?
目前我有某种观察员对象,当更改并随后通知连接的片段时会收到通知。但有几个问题:
- 当应用程序刚刚开始,一些片段尚未由FragmentPager创建,因此通知它们是不可能的。
- 当在片段中滑动时,其中一些片段会暂停。在这种状态下,他们无法更新他们的列表。在这种情况下他们是否应该与观察者断开?这会导致:
- 发生更改时,片段断开连接时,基本上会错过它。
- 等等...