0

コンテンツ プロバイダーの代わりに、(contacts.db、mmssms.db) などのデータベースを直接使用できるかどうか疑問に思っていました。

そう聞くには理由があります。私の最近のプロジェクトでは、連絡先アプリを開発することになっていました。連絡先管理にコンテンツ プロバイダーを使用しました。コンテンツ プロバイダーから学んだように、URI を介して一度にクエリを実行できるのはテーブルのみです。2 つのテーブルを結合してクエリを解決する方法はありません (少なくとも、私は見つけられませんでした)。

そして、データベースは最初にそれらを作成したアプリケーションにのみ表示されることを読んだので、私のアプリはこれらのデータベースにアクセスできますか?

私は自分の携帯電話の趣味の開発者です。データベースを直接利用するアプリを作るつもりはありません。デバイスからデータベースを取得し、sqlite 経由で分析できます。私がコンテンツ プロバイダーに反対しているとか、コンテンツ プロバイダーが私のニーズに合わないということではありません。

ご意見はありますか?

4

1 に答える 1

1

コンテンツ プロバイダーは、データベースへのアクセスだけではありません。ローダーを使用して、基になるデータが変更されたときにデータを自動的に再読み込み (および UI を更新) できるため、アプリケーションを大幅に簡素化できます。

コンテンツ プロバイダーの目標は、データにアクセスするための制御された単一のレイヤーを作成することです。複数のテーブルを結合して結合結果を返すカスタム URI を作成することを妨げるものは何もありません。

于 2013-05-03T18:55:38.880 に答える