私のAndroidプロジェクトには、ストリームアドレス(音楽)のリストを保持するクラスがあります
そのリストを補充する必要がないように、そのクラスを保持する必要がありますか?
画面に押し込んだり、画面から引き戻したりするさまざまな画面 (アクティビティ) が多数ある場合があります。
これらと画面変更 (アクティビティの破棄) の間に、リストは失われます...
このロジックはリストを保持するためにサービスを必要としますか?
私のAndroidプロジェクトには、ストリームアドレス(音楽)のリストを保持するクラスがあります
そのリストを補充する必要がないように、そのクラスを保持する必要がありますか?
画面に押し込んだり、画面から引き戻したりするさまざまな画面 (アクティビティ) が多数ある場合があります。
これらと画面変更 (アクティビティの破棄) の間に、リストは失われます...
このロジックはリストを保持するためにサービスを必要としますか?
リストを静的シングルトンまたは拡張クラスに格納できますApplication
。を使用して、アクティビティ クラスからアクセスできますgetApplication()
。
正しく使用すると、静的シングルトンはアプリケーション クラスと同じように機能しますが、シングルトンはどこからでもアクセスでき、アプリケーション クラスはコンテキストを介してのみアクセスできるという点が異なります。
ここで、アプリケーションとシングルトンの違いについての関連する質問があります。
いいえ、その必要はありません。
通常、Activity のライフサイクル全体で存続する必要がある長時間実行されるクラスがある場合は、それをバインドされたサービスに配置すると機能します。IPC 経由でデータを転送する必要があります。この場合、それは問題ではありません。String
基本的に配列を扱っているので、開始しようとしている のIntent
オブジェクトまたはオブジェクトに入る に配置できます。Activity
Bundle
Intent
アクティビティの作成時に、メソッドをBundle
使用して開き、リストを再構築するだけです。Intent#getExtras()
を使用した IPC に比べてそれほど時間はかからずService
、保守も大幅に容易になるはずです。
編集:
試すことができることの 1 つは、Application
オブジェクトをオーバーライドすることです。で新しいエントリ ポイントを指定する必要がありますが、クラスからManifest
をビルドしてそこに参照を保持すると、アプリが実行されている限り存続するはずです。離れると壊れますが。Singleton
Application