3

アプリに複数のアクティビティがあり、データを共有する必要があるとします。Android 開発者にとってかなり一般的なパターンは、ある種のシングルトン オブジェクト (オプションでアプリケーション シングルトンにアタッチ) を持ち、それを使用してデータをグローバルに共有することです。これは Java では十分に悪いことですが、Scala では非常に見栄えが悪くなります。

メッセージ パッシングでは、データがプリミティブで構成されている場合、インテントを使用できます。しかし、メイン ドメイン モデルはどうでしょうか。非常に複雑なオブジェクトを渡すことができるようにしたいと考えています。Parcelable シリアライゼーションを使用してそれを行うことができるようですが、それがどれほど速いか (私のオブジェクトはデータが重い)、Scala でうまく動作するかどうかはわかりません。誰もこれを試しましたか?

もう 1 つのアイデアは、渡されたメッセージが参照である "HashMap of WeakReferences to Objects" 戦略を使用することです。グローバル データはまだ取得していますが、アクセスは保護されています。Android 関係者だけでなく、Scala 関係者からも意見を聞くことができるかもしれません。

4

1 に答える 1

0

これを解決した方法は、アプリに Akka ライブラリを含め、グローバル オブジェクトをアクティビティ間で渡されるメッセージに変換することでした。

問題なく動作しているように見えますが、これまで Android で Akka を使用している人は多くなく、ベスト プラクティスを見つけるのは困難です。この戦略について何かコメントがあれば、私に知らせてください。

于 2013-09-12T12:09:01.867 に答える