コンテンツプロバイダー
进行跨进程通信,实现进程间得数据交互和共享。通过 Context 中 getContentResolver() 获得实例,通过 Uri 匹配进行数据的增删改查。ContentProvider 使用表的形式来组织数据,无论数据的来源是什么,ContentProvider 都会认为是一种表,然后把数据组织成表格
1. 概要
-
これは、アプリケーション間でデータを共有するメカニズムを提供し、データの保存と取得のための統一インターフェイスを提供します。
-
また、ContentProvide はデータをカプセル化するため、データ ストレージの詳細を気にする必要はありません。[表を使用してデータを整理する]。
-
ContentProvider を使用して、異なるアプリケーション間でデータを共有します。
-
Android は、一部の一般的なデータ (音声、ビデオ、写真、連絡先など) に対してデフォルトの ContentProvider を提供します。一般に、ContentProvider を使用してデータを外部共有する利点は、データのアクセス方法を統一できることです。
-
ContentProvider はシステムとカスタムに分かれており、システムは連絡先、写真、ビデオ、オーディオ、その他のデータなどです。
-
[SQLite はアプリケーションにプライベートなデータを保存するために使用されますが、ContentProvider はアプリケーション間でデータを共有するためのメカニズムを提供します]
-
[アプリケーションが ContentProvider クラスを継承し、データの提供と保存されたデータの操作に使用されるメソッドを書き換えると、そのデータを他のアプリケーションと共有できます。】
2. [ContentProviderとUniform Resource Identifier(url)の関連付け]
-
各 ContentProvider にはパブリック URI があり、この ContentProvider によって提供されるデータを表すために使用されます。】
-
Android システムによって提供されるすべての ContentProvider は、android.provider パッケージに保存されます]
-
ContentProvider の実装を学習することは、実際には、システムによって提供される ContentProvider を将来的に使いやすくするためです。実際の開発では、ContentProvider を自分で作成する必要はほとんどありません。
3. ContentProvider によって提供されるメソッド:
query: クエリ、Cursor オブジェクトを返します。Cursor 自体はインターフェイスですが、Android にはデータベース アクセスごとに異なる Cursor オブジェクトの実装があります。 insert: 挿入
update
: 更新
delete: 削除
getType: データ型の取得
onCreate: データ作成時に呼び出されます コールバック
その後、これらのメソッドを独自のサブクラスでオーバーライドできます。
4. [カスタム ContentProvider - 例]
-
定数クラスを定義します。このクラスには次のものが含まれている必要があります: public static Final CONTENT_URI。この ContentProvider を表すために使用される、提供されるデータ URI
一个ContentProvider如果有多个子表,则需要定义多个URI常量,且建议定义一些常量来表示 表中的列名。并设置好 主键()
-
ContentProviderを継承するクラスを定義する
-
次に、親クラス (query、insert、update、delete、getType、onCreate、その他のメソッド) を書き換えます。
-
AndroidManifest.xml ファイルで宣言