比方說,我有一個同質項目列表,這些項目可能會在用戶交互或操作系統事件的活動生命週期中進行更改。 Activity
包含FragmentPager
,其顯示了多個ListFragment
。保持FragmentPager中的ListFragments同步
這些片段共享之前提到的數據,但以不同方式顯示。例如。它們在排序順序上不同或僅顯示一部分數據。目前,每個片段都保持一個單獨的列表,其中包含相應順序中數據的相應部分。
當數據發生變化時,基本上每個片段都必須更新。這意味着訴諸或添加/刪除某些片段的項目。 保持不同片段中數據一致的最佳做法是什麼?
目前我有某種觀察員對象,當更改並隨後通知連接的片段時會收到通知。但有幾個問題:
- 當應用程序剛剛開始,一些片段尚未由FragmentPager創建,因此通知它們是不可能的。
- 當在片段中滑動時,其中一些片段會暫停。在這種狀態下,他們無法更新他們的列表。在這種情況下他們是否應該與觀察者斷開?這會導致:
- 發生更改時,片段斷開連接時,基本上會錯過它。
- 等等...