16

アプリケーションデータベースにアクセスするための最良のアプローチはどれか疑問に思っています。コンテンツプロバイダーを使用するか、DAOを手動で実装するか。私の最近の調査から、コンテンツプロバイダーは、アプリの内部使用であっても望ましいようですが、各アプローチの欠点が正確にはわかりません。これについてフィードバックをいただけますか?

4

3 に答える 3

13

dbを閉じたりロックしたりする心配がある場合は、ContentProviderを使用することをお勧めします。シンプルコンテンツプロバイダーでデータベース操作を確認する

于 2012-11-24T16:24:47.767 に答える
10

Googleドキュメントから。

構築を開始する前に

プロバイダーの構築を開始する前に、次のことを行ってください。

コンテンツプロバイダーが必要かどうかを判断します。
次の機能の1つ以上を提供する場合は、コンテンツプロバイダーを構築する必要があります。

  • 複雑なデータやファイルを他のアプリケーションに提供したい。
  • ユーザーが複雑なデータをアプリから他のアプリにコピーできるようにする必要があります。
  • 検索フレームワークを使用してカスタム検索候補を提供する必要があります。

完全に独自のアプリケーション内で使用する場合は、SQLiteデータベースを使用するためのプロバイダーは必要ありません。

しかし、これや他のいくつかの投稿を読んでいると、少し混乱しました。自分のアプリでのみ使用することを意図している場合、コンテンツプロバイダーイベントを使用することは意味がありますか?

于 2015-04-24T10:52:28.340 に答える
5

ContentProviderのドキュメントから:

コンテンツプロバイダーは、Androidアプリケーションの主要な構成要素の1つであり、アプリケーションにコンテンツを提供します。データをカプセル化し、単一のContentResolverインターフェイスを介してアプリケーションに提供します。コンテンツプロバイダーは、複数のアプリケーション間でデータを共有する必要がある場合にのみ必要です。たとえば、連絡先データは複数のアプリケーションで使用され、コンテンツプロバイダーに保存する必要があります。複数のアプリケーション間でデータを共有する必要がない場合は、SQLiteDatabaseを介してデータベースを直接使用できます。

他のアプリケーションとデータを共有しない場合は、コンテンツプロバイダーは必要ないようです。

リンク:http ://developer.android.com/reference/android/content/ContentProvider.html

于 2013-01-18T18:54:12.900 に答える