2

私のAndroidプロジェクトには、ストリームアドレス(音楽)のリストを保持するクラスがあります

そのリストを補充する必要がないように、そのクラスを保持する必要がありますか?

画面に押し込んだり、画面から引き戻したりするさまざまな画面 (アクティビティ) が多数ある場合があります。

これらと画面変更 (アクティビティの破棄) の間に、リストは失われます...

このロジックはリストを保持するためにサービスを必要としますか?

4

2 に答える 2

2

リストを静的シングルトンまたは拡張クラスに格納できますApplication。を使用して、アクティビティ クラスからアクセスできますgetApplication()

正しく使用すると、静的シングルトンはアプリケーション クラスと同じように機能しますが、シングルトンはどこからでもアクセスでき、アプリケーション クラスはコンテキストを介してのみアクセスできるという点が異なります。

ここで、アプリケーションとシングルトンの違いについての関連する質問があります。

于 2012-10-29T14:17:56.027 に答える
1

いいえ、その必要はありません。

通常、Activity のライフサイクル全体で存続する必要がある長時間実行されるクラスがある場合は、それをバインドされたサービスに配置すると機能します。IPC 経由でデータを転送する必要があります。この場合、それは問題ではありません。String基本的に配列を扱っているので、開始しようとしている のIntentオブジェクトまたはオブジェクトに入る に配置できます。ActivityBundleIntent

アクティビティの作成時に、メソッドをBundle使用して開き、リストを再構築するだけです。Intent#getExtras()を使用した IPC に比べてそれほど時間はかからずService、保守も大幅に容易になるはずです。

編集:

試すことができることの 1 つは、Applicationオブジェクトをオーバーライドすることです。で新しいエントリ ポイントを指定する必要がありますが、クラスからManifestをビルドしてそこに参照を保持すると、アプリが実行されている限り存続するはずです。離れると壊れますが。SingletonApplication

于 2012-10-29T13:32:02.773 に答える