[4 つのコンポーネントの概要 - ContentProvider]

コンテンツプロバイダー

 进行跨进程通信,实现进程间得数据交互和共享。通过 Context 中 getContentResolver() 获得实例,通过 Uri 匹配进行数据的增删改查。ContentProvider 使用表的形式来组织数据,无论数据的来源是什么,ContentProvider 都会认为是一种表,然后把数据组织成表格

1. 概要

  1. これは、アプリケーション間でデータを共有するメカニズムを提供し、データの保存と取得のための統一インターフェイスを提供します。

  2. また、ContentProvide はデータをカプセル化するため、データ ストレージの詳細を気にする必要はありません。[表を使用してデータを整理する]。

  3. ContentProvider を使用して、異なるアプリケーション間でデータを共有します。

  4. Android は、一部の一般的なデータ (音声、ビデオ、写真、連絡先など) に対してデフォルトの ContentProvider を提供します。一般に、ContentProvider を使用してデータを外部共有する利点は、データのアクセス方法を統一できることです。

  5. ContentProvider はシステムとカスタムに分かれており、システムは連絡先、写真、ビデオ、オーディオ、その他のデータなどです。

  6. [SQLite はアプリケーションにプライベートなデータを保存するために使用されますが、ContentProvider はアプリケーション間でデータを共有するためのメカニズムを提供します]

  7. [アプリケーションが ContentProvider クラスを継承し、データの提供と保存されたデータの操作に使用されるメソッドを書き換えると、そのデータを他のアプリケーションと共有できます。

2. [ContentProviderとUniform Resource Identifier(url)の関連付け]

  1. 各 ContentProvider にはパブリック URI があり、この ContentProvider によって提供されるデータを表すために使用されます。

  2. Android システムによって提供されるすべての ContentProvider は、android.provider パッケージに保存されます]

  3. ContentProvider の実装を学習することは、実際には、システムによって提供される ContentProvider を将来的に使いやすくするためです。実際の開発では、ContentProvider を自分で作成する必要はほとんどありません。

3. ContentProvider によって提供されるメソッド:

query: クエリ、Cursor オブジェクトを返します。Cursor 自体はインターフェイスですが、Android にはデータベース アクセスごとに異なる Cursor オブジェクトの実装があります。 insert: 挿入
   update
   : 更新
   delete: 削除
   getType: データ型の取得
   onCreate: データ作成時に呼び出されます コールバック

その後、これらのメソッドを独自のサブクラスでオーバーライドできます。

4. [カスタム ContentProvider - 例]

  1. 定数クラスを定義します。このクラスには次のものが含まれている必要があります: public static Final CONTENT_URI。この ContentProvider を表すために使用される、提供されるデータ URI

     一个ContentProvider如果有多个子表,则需要定义多个URI常量,且建议定义一些常量来表示 表中的列名。并设置好 主键()
    
  2. ContentProviderを継承するクラスを定義する

  3. 次に、親クラス (query、insert、update、delete、getType、onCreate、その他のメソッド) を書き換えます。

  4. AndroidManifest.xml ファイルで宣言

おすすめ

転載: blog.csdn.net/UserFrank/article/details/129204618