现在的位置: 首页 > 综合 > 正文

Android四大组件之Content Providerer

2017年11月14日 ⁄ 综合 ⁄ 共 1068字 ⁄ 字号 评论关闭

一、Content Provider的来源

 Android 系统采用的是Linux内核,因此继承了linux严格的权限广利机制。每一个android应用拥有一个单独的用户ID,运行在单独的进程和地址空间,所有的应用数据都是私有的,没有一个公共的存储区域供多个应用共享存储数据。但是Android应用之间有必然需要进行数据共享和交互,如何解决这一个难题呢?

Content Provider就做到了,Content Provider 对外提供URI来进行数据访问,它提供了一个标准化的数据管道,以标准化的方式在android应用间共享数据,

二、数据模型

Content Provider 是以二维表格的形式来提供数据的,sqllite数据库是android 上一个轻量级数据库.

      三、认识URI

URI (Uniform Resource Indentifier ) 统一资源标志, URI是Content Provider最重要的部分,它是链接的桥梁。

与URL类似,在浏览器的地址栏输入一个URL地址,就可以访问响应的网站,而在Android系统中,是通过URI访问资源的。

URl的结构组成:content://com.demo.database/books/01
 

其中,content://是固定的标准前缀,它代表当前请求资源是有Content Provider提供。

    com.demo.database是唯一标示,跟在AndroidMainfest中配置的android:authorities属性一致。

    books代表资源路径,或者是books/computers;books/history。

    01代表资源的唯一ID,这样可以定义到唯一的记录信息中,可省略。所以一般的Content Provider都会提供二个URI,一个是不需要“01”。代表查询所有,如果带有ID,则查询单个。

      三、自定义Content Provider

创建步骤:

1、创建数据库。

2、继承ContentProvider。并实现query()、insert()、onCreate()、delete()、update()、getType()等。

3、在AndroidManifest.xml声明<provider >标签,必须声明android:name和android:authorities属性,指定Content Provider的实现类的名称和唯一标志ID。

 
创建案例:http://blog.csdn.net/luoshengyang/article/details/6950440


抱歉!评论已关闭.