アプリケーションデータベースにアクセスするための最良のアプローチはどれか疑問に思っています。コンテンツプロバイダーを使用するか、DAOを手動で実装するか。私の最近の調査から、コンテンツプロバイダーは、アプリの内部使用であっても望ましいようですが、各アプローチの欠点が正確にはわかりません。これについてフィードバックをいただけますか?
3 に答える
dbを閉じたりロックしたりする心配がある場合は、ContentProviderを使用することをお勧めします。シンプルコンテンツプロバイダーでデータベース操作を確認する
Googleドキュメントから。
構築を開始する前に
プロバイダーの構築を開始する前に、次のことを行ってください。コンテンツプロバイダーが必要かどうかを判断します。
次の機能の1つ以上を提供する場合は、コンテンツプロバイダーを構築する必要があります。
- 複雑なデータやファイルを他のアプリケーションに提供したい。
- ユーザーが複雑なデータをアプリから他のアプリにコピーできるようにする必要があります。
- 検索フレームワークを使用してカスタム検索候補を提供する必要があります。
完全に独自のアプリケーション内で使用する場合は、SQLiteデータベースを使用するためのプロバイダーは必要ありません。
しかし、これや他のいくつかの投稿を読んでいると、少し混乱しました。自分のアプリでのみ使用することを意図している場合、コンテンツプロバイダーイベントを使用することは意味がありますか?
ContentProviderのドキュメントから:
コンテンツプロバイダーは、Androidアプリケーションの主要な構成要素の1つであり、アプリケーションにコンテンツを提供します。データをカプセル化し、単一のContentResolverインターフェイスを介してアプリケーションに提供します。コンテンツプロバイダーは、複数のアプリケーション間でデータを共有する必要がある場合にのみ必要です。たとえば、連絡先データは複数のアプリケーションで使用され、コンテンツプロバイダーに保存する必要があります。複数のアプリケーション間でデータを共有する必要がない場合は、SQLiteDatabaseを介してデータベースを直接使用できます。
他のアプリケーションとデータを共有しない場合は、コンテンツプロバイダーは必要ないようです。
リンク:http ://developer.android.com/reference/android/content/ContentProvider.html