0

私は GWT を初めて使用し、最近コードに Actvivities、Places、ActivityMappers を追加しました。各リージョンごとに 1 つの ActivityManager-ActivityMapper があります。ヘッダーやメニューなどの領域はあまり変更されないため、ActivityMapper に定型コードを大量に記述して、毎回同じプレゼンターを別のコンストラクターでロードする必要があります。考えられる場所ごとに、ActivityMapper によって指定されたインスタンスを取得するために、Presenter 用の別のコンストラクターを作成する必要があります。それをもっと簡単にする方法はありますか?さらに、新しい場所に移動するたびに (同じプレゼンターをロードする場合でも) 新しいプレゼンターを作成するという考えには満足できません。実際、私はそれについて大きな問題を抱えています。なぜなら、私のアクティビティは決して死ぬことがなく、イベントを受け取り続けているからです。

4

1 に答える 1

0

が以前とまったく同じインスタンス (参照の等価性、つまり、 not ) をActivityMapper返す場合、アクティビティは再開されず、領域は変更されません。これは、頻繁に変更されないリージョン (ヘッダーやメニュー、またはマスター/ディテール設定のマスターリージョンなど) のケースに対する意図的な最適化です。これが の理由でもあります(および、特にマスター/ディテール セットアップでと一緒に使用するように設計されています)。Activity==equals()CachingActivityMapperFilteredActivityMapperCachingActivityMapper

あなたの場合、この最適化を利用するのを難しくするルールを自分自身に課しているようです。明らかな理由もなく、現在の場所をアクティビティのコンストラクターに渡しています。

于 2015-05-17T10:35:46.077 に答える