Android之ContentProvider组件

一、内容提供者

  1、分为系统自带的内容提供者和自定义的内容提供者
  2、系统内容提供者:一般在数据库下/data/data/下以com.android.provider开头的包名,都是有系统内容提供者的,比如短信,联系人。获得短信,联系人信息等都是通过系统的内容提供者。
  3、自定义的内容提供者:现有两个工程A和B,A中有数据库,B要访问A中私有化的数据库,但是A中的数据库外界无法直接访问,所以我们需要在A中自定义内容提供者,对外提供操作A中数据库的方法,将操作数据库的方法公开化,内容提供者提供增删改查的方法,B通过调用这些方法对A的数据库进行操作。

二、自定义内容提供者

     1、定义类继承ContentProvider,并实现其中的方法()   
1 public class Provider extends ContentProvider {
2     @Override
3     public boolean onCreate() {
4         // TODO Auto-generated method stub
5         return false;
6     }
7 }
  2、清单文件中配置
    android:authorities="myProvider" 标识,content://myProvider是要访问的内容提供者
    android:exported="true"置为true,其他程序也可以访问  
1 <provider android:name="com.example.myprovider.Provider"
2     android:authorities="myProvider"
3     android:exported="true"/>

三、访问内容提供者

  1、获取中间人ContentResolver
  2、提供uri,观察谁,就用谁的uri
  3、注册内容观察者ContentObserver
    比如监听系统的所有短信的变化,系统短信已经有了内容提供者,我们只需与系统短信的uri匹配上,我们就可以操作它,此时我们不需要写内容提供者
posted @ 2014-04-07 14:25  myxiaoQ  阅读(505)  评论(0编辑  收藏  举报