hereとした場合、スコープロジックを実装するためにコンポーネントインスタンスを保持するのは開発者の責任です(スコープされたメソッドは特定のコンポーネントに対して同じインスタンスを返すため)。方向変更時のダガーコンポーネントの処理
このコンポーネントの参照をアクティビティのライフサイクルを通じて維持するにはどうすればよいですか?
例:MVPパターンを実装しているため、アクティビティ内にプレゼンターが必要です。このプレゼンターはアイテムをダウンロードするためにネットワーク操作を行うことができます。デバイスが回転すると、あなたのアクティビティは破壊され、再作成されますが、ネットワーク操作はそのままにして、プリローテーションプレゼンターを取り戻したいと考えています。
PresenterにカスタムPerActivityスコープを提供するコンポーネントのスコープはソリューションです。したがって、このローテーションを通じてComponentインスタンスを保持して、アクティビティの最初の起動時にPresenterの同じインスタンスを注入する必要があります。
どうすればこの問題に対処できますか?私は、Applicationクラス内にあるApplication Componentによって提供されることができる、ある種のコンポーネントキャッシュ(HashMapのようなもの)を考えました。
オプションは次のとおりです。 - カスタム非構成インスタンス。 - 保持された断片。 – EpicPandaForce
**個人的に**現在の活動が「再開」されていない間にイベントバスを介してイベントディスパッチをブロックし、プレゼンターの状態をバンドルに入れて、イベントが再開される前の状態を復元します。したがって私の発表者はスコープがありません。 – EpicPandaForce
この状態で、たとえば、OkHttpクライアントがデータをダウンロードしている場合に、プレゼンターの状態をバンドルに保存するにはどうすればよいですか?この場合、プレゼンタキャッシュが必要になります。 –