0

注 : これは、 LightCycleプロジェクトの githubで直接尋ねた質問です。Android アプリ上にクリーンな MVP アーキテクチャを構築するための SongKick の優れたツールです。


懐かしく思うところがあり、断片的で断片的な活動をしているプレゼンター。アクティビティ プレゼンターで計算を行い、それを 1 つまたは複数のフラグメント プレゼンターに送信したい場合があります (たとえば、コンテンツのテーブルがアクティビティ メニューに表示され、最初に全画面表示されるフラグメントに表示されます)。

アクティビティ プレゼンターにフラグメント プレゼンターの参照を保持する方法を追加する方法 (おそらく、それを設計する方法ではない可能性があります)。

2 番目の質問です。MyOnlineActivityPresenter と MyOfflineActivityPresenter の 2 つの子を持つ MyActivityPresenter があります。MyActivityPresenter.newPresenter(Network.isNetworkAvailable(contexte), some other args) は、オンラインまたはオフラインのプレゼンターがインスタンス化されるかどうかを決定します。だから私は次のようなことをする必要があります:

@LightCycle
PlayerPresenter presenter = PlayerPresenter.get(NetworkUtils.isNetworkAvailable(this));

しかし、クラスのインスタンス化時に null になる可能性があるため、コンテキストをそのように使用してはならないと言われました。それは本当に問題ですか?

また、 onCreate Bundle にある他のいくつかの引数を渡す必要がありますか?

また、現時点では依存性注入は使用していません。

この非常に便利なライブラリにもう一度感謝します

4

1 に答える 1

0

これが彼らが私にくれた答えです


アクティビティ プレゼンターにフラグメント プレゼンターの参照を保持する方法を追加する方法 (おそらく、それを設計する方法ではない可能性があります)。

このライブラリの範囲内のものではありません。私はあなたのために2つの解決策を見ることができます:

  • 同じインスタンスを注入する
  • フラグメントからプレゼンターへのアクセサーを提供します。(これはあなたにとってより良いようです)。

しかし、クラスのインスタンス化時に null になる可能性があるため、コンテキストをそのように使用してはならないと言われました。それは本当に問題ですか?また、 onCreate Bundle にある他のいくつかの引数を渡す必要がありますか?

こっちも一緒。

  • あなたのケースで利用可能で十分なはずのアプリコンテキストを使用できます
  • バインディングは作成時に発生するため、コンストラクターでこの男を初期化できます
于 2016-11-21T17:20:05.173 に答える