CachingActivityMapper
単独で使用する場合は、ほとんど (またはまったく) 役に立ちません。FilteredActivityMapper
これは、 aと yourのようなものの間にあることを実際に意味していますActivityMapper
。
元のユースケースはマスター/ディテールでした。たとえば、2ActivityManager
つのメール アプリの場合、1 つはメールのリスト (マスター) 用で、もう 1 つは特定のメッセージ (詳細) 用です。マスターに集中しましょう:
- 現在の場所は
MailBox("inbox")
- は
FilteredActivityMapper
その場所をそのまま下層に渡しますCachingActivityMapper
- 実際
ActivityMapper
には、「受信トレイ」内のメールのリストのアクティビティが返されます
- ユーザーがリスト内のメールをクリックして、新しい場所に移動する
Message(box="inbox", id="123")
- は
FilteredActivityMapper
場所を変えるMailBox("inbox")
- は、
CachingActivityMapper
実際にラップされたを呼び出すことなく、キャッシュされたアクティビティを返しますActivityMapper
。そのためActivityManager
、アクティビティを停止して開始したり、管理しているに触れたりすることはありませんHasOneWidget
。
バリアントが存在する可能性があります。たとえば、詳細マッパーは最後に見たメッセージプレースをキャッシュし (そのメッセージプレースには「メール ボックス」情報が含まれていませんMessage("123")
)、MailBoxプレースを受け取ると、キャッシュされたアクティビティを返す、基になる へのメッセージの場所。これにより、詳細パネルに同じメッセージを表示したまま、マスターが新しいメール ボックスに変更CachingActivityMapper
できるようになります(分割表示の GMail は多かれ少なかれこのように動作します)。