AndroidのContentProviderコンポーネント

1308 ワード

1、コンテンツ提供者
1、システムが持参したコンテンツプロバイダとカスタムコンテンツプロバイダに分ける
2、システムコンテンツ提供者:一般的にデータベースの下/data/data/下にcom.android.providerの冒頭のパッケージ名は、メール、連絡先などのシステムコンテンツプロバイダがあります.メール、連絡先情報などを取得するのは、システムを通じたコンテンツプロバイダです.
3、カスタマイズされたコンテンツプロバイダ:既存の2つのプロジェクトAとB、Aにはデータベースがあり、BはAの中の私有化されたデータベースにアクセスしなければならないが、Aの中のデータベースは外部から直接アクセスできないので、Aの中でコンテンツプロバイダをカスタマイズし、対外的にAの中のデータベースを操作する方法を提供し、操作データベースの方法を公開化し、コンテンツプロバイダは削除・変更の方法を提供する必要がある.Bこれらの方法を呼び出すことによりAのデータベースを操作する.
2、カスタムコンテンツプロバイダ
1、クラス継承ContentProviderを定義し、その中の方法()を実現する
   
public class Provider extends ContentProvider {
    @Override
    public boolean onCreate() {
        // TODO Auto-generated method stub
        return false;
    }
}

2、インベントリファイルの構成
android:authorities=「myProvider」ID、content://myProviderアクセスするコンテンツプロバイダ
Android:exported=「true」をtrueに設定し、他のプログラムもアクセスできます.
<provider android:name="com.example.myprovider.Provider"
    android:authorities="myProvider"
    android:exported="true"/>

3、コンテンツプロバイダへのアクセス
1、仲介者ContentResolverを取得する
2、uriを提供して、誰を観察して、誰のuriを使います
3、登録内容観察者ContentObserver
例えば、システムのすべてのメールの変化を傍受して、システムのメールはすでにコンテンツプロバイダがあって、私达はシステムのメールのuriと一致するだけで、私达はそれを操作することができて、この时私达はコンテンツプロバイダを書く必要はありません