ContentProvider

ContentProvider
1. 什么是ContentProvider?
ContentProvider是数据的包装器、一种类似REST的抽象来公开数据源。
目的:解决了不同进程间应用程序数据通信、共享的问题。

ContentProvider将应用程序特定的数据提供给另一个应用程序使用。数据的存储方式可以是Android文件系统、也可以是SQLite数据库、preference、网络等方式。
2. Android内置的ContentProvider:
参见: /reference/android/provider/package-summary.html
Browser/Contacts/MediaStore/Settings....
3. ContentProvider的架构
总体而言,ContentProvider方法类似于以下业内抽象机制:
 网站
 REST
 Web服务
 存储过程
与网站一样,设备上的每个ContentProvider都会使用字符串注册自身,这个字符串类似于域名,但称之为授权(authority)。授权的注册在AndroidManifest.xml中进行。如
<provider android:name="someprovider"
Android:authorities="com.your-company.SomeProvider"/>"
Authorities就相当于ContentProvider的域名,在授权注册之后,这些ContentProvider就拥有了以授权前缀开头的URL:
Content:// com.your-company.SomeProvider/

注意:Android内置的ContentProvider可能没有完全限定的授权名,只有在使用第三方ContentProvider时,才建议使用完全限定的授权名。
如:
content://contacts/people/
content://com.google.android.contatcs/people
两都等价。


Android 内容URI的结构:
Content://authority-name/path-segment0/path-segment1/....

获取URI内容:Uri.getPathSegments().get(1)==" path-segment1"

 

4.实现ContentProvider
1)计划数据库、URI、列名称等,创建元数据类来定义所有这些元数据元素的常量。
2)扩展抽象类
3)必须实现抽象方法:query,insert,update,delete和getType.
4)在描述文件AndroidManifest.xml中注册提供程序

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值