0

Android でのデータベース クエリ (初心者) のサービスの最適な使用法を理解しようとしています。このサービスは、アクティビティからデータベースにクエリを実行するために使用されるデータベースへの (インターネット経由の) 接続を有効にする必要があります。

私の理解では、これは Bound Service を使用して実現できます。つまり、複数のクライアントをサービスにバインドし、それぞれがサービスのメソッドにアクセスできます。ただし、この状況でServiceクラスまたはそのサブクラスを拡張するかどうかはわかりません。IntentService

理想的には、サービスはサービスの開始時に、たとえばそのonCreateメソッドで一度データベースに接続し、サービスのメソッドで切断する必要がありますonDestroy。サービスには、この接続を使用してデータベースにクエリを実行するさまざまなメソッドがあります。

では、クラスを拡張してデータベース接続のためにService新しいスレッドを開始することと、クラスを拡張して接続を開始すること(つまり、独自のワーカー スレッドを開始すること)に違いはありますか?onCreateIntentServiceonCreateIntentService

にバインドすると、IntentServiceすべてのアクティビティがアンバインドされるまで生き続けますか?

これが最善の方法ですか?

ありがとう

4

1 に答える 1

0

最も自然で推奨される方法は、コンテンツ プロバイダを作成することです。Content Provider はすでに合理的なライフ サイクルを実装しており、そのようなサービスをゼロから実装しようとすると必ず遭遇する他の多くの問題を解決します。

于 2013-08-22T16:01:34.380 に答える