【四大组件-ContentProvider小结】

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 与 统一资源标识符(url) 的联系 ]

  1. 每一个ContentProvider都拥有一个公共的URI,这个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文件中声明

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值