2011-01-21 5 views
1

私はAndroidのデザインについての簡単なアプローチの質問があります。コンテンツプロバイダまたはリソース、アクティビティ、サービスの協力

私は、サービスとアクティビティを提供するシナリオを想定しています。サービスとアクティビティの両方が同じデータを読み書きする必要があります。基本的なアイデアはライブプレイリストです:リストを再生しているサービスは、再生が終わったらリストから曲を "ポップ"しますが、曲を追加または削除してリストを編集することもできます。

私はインターネット上で見つけられるすべてのContentProviderの例が病的に複雑すぎるか、SQLiteのみを含むように見える、実際のプレイリストにContentProviderを使用すると考えました。

もう1つの方法は、リソースに簡単なファイルを保存し、サービスとアプリケーションの両方からアクセスすることです。

ここではどちらの方が良いと思われますか? ContentProviderを実際に使用する必要がある場合は、誰かが可能な限り単純な実装に、好ましくはSQLiteを含まないように指示してください。私の以前の見方から、ContentProviderは単純な目的のために複雑すぎるようです。

ありがとうございました! -Chase

答えて

1

ContentProviderは、委任されたデータを永続させることができますが、好きです。通常、ContentProviderインターフェイスへのマッピングは直感的であるため、SQLiteを意味します。

ただし、ContentProviderがinsert()、update()、delete()、およびquery()操作を実装している限り(またはプロバイダが実装する必要があるアプリケーションを実装するだけで、 )あなたは、あなたが好きなどのような仕組みを使っても、出入りするデータを保持することができます。 SQLiteデータベースやファイルなどに自由に保存してください。

ContentProviderが強制終了され、再起動される可能性があります。後でガベージコレクションや再構築が行われる可能性があります。そのため、却下されたり再初期化されたクラスに対して堅牢なものを使用する必要があります。

あなたのケースでは、再起動後に永続することに心配しないでしょう(リブートした後に音楽リストが再生されていることを気にする人はいます)ので、静的変数のなんらかのリストで十分です。

関連する問題