ユーザーインタラクションまたはOSイベントによってアクティビティの存続期間中に変更される可能性のある同種のアイテムのリストがあるとします。には、の数を示すActivity
が含まれています。FragmentPager
ListFragment
これらのフラグメントは前述のデータを共有しますが、さまざまな方法で表示します。たとえば、並べ替え順序が異なる場合や、データのサブセットのみが表示される場合などです。現在、各フラグメントは、データのそれぞれの部分をそれぞれの順序で含む個別のリストを保持しています。
データが変更されると、基本的にすべてのフラグメントを更新する必要があります。これは、一部のフラグメントからアイテムを再利用または追加/削除することを意味します。さまざまなフラグメントのデータの一貫性を保つためのベストプラクティスは何ですか?
現在、ある種のオブザーバーオブジェクトがあります。これは、何かが変更されたときに通知され、その後、接続されたフラグメントに通知されます。しかし、いくつかの問題があります。
- アプリが起動したばかりのとき、一部のフラグメントはFragmentPagerによって作成されていないため、通知することはできません。
- フラグメントをスワイプすると、一部が一時停止します。この状態では、リストを更新できません。この場合、オブザーバーから切断する必要がありますか?これはにつながります:
- 変更が発生すると、フラグメントが切断されている間、基本的にそれを見逃します。
- 等々...