ContentProvider(内容提供者)

来源:互联网 发布:传感器数据采集器 编辑:程序博客网 时间:2024/06/05 21:39

一、什么是ContentProvider?

①contentProvider(内容提供者)是安卓四大组件之一,用来共享应用程序内的数据

②当你需要把你的应用程序的数据共享给其他的应用程序的时候,才需要它

③该组件对外提供了其他应用可以直接访问的增删改查方法

④一旦通过ContentProvider暴露了自己的数据,不管应用程序是否启动,都能访问到。

原理:

1.简单来说,ContentProvider暴露数据的过程,类似于网站的访问。

例如:servlet。Servlet只是一个接口,提供了访问数据库的功能,但是并不对外提供完整的操作页面。如果需要操作这个接口,必须要有一个客户端通过URL来访问

2.当成Android内部的网站,地址是URI

3.向URI发送请求,这种请求最后委托给ContentProvider处理。当注册ContentProvider时,需要为它绑定一个URI

4.发送请求必须要由一个客户端发出,这个客户端ContentResolver,相当于是访问网页的浏览器


二、如何创建ContentProvider

1.定义类继承ContentProvider,根据需要重写内部方法

2.在清单文件的<application>节点下进行配置,<provider>标签中需要指定name和authorities属性。name为类的完整路径,authorities是访问Provider时的路径,要唯一。android:exported="true" Android4.0需要加上


三、如何访问ContentProvider?

1.通过Context的getContentResolver()方法获得ContentResolver对象

2.调用ContentResolver对象的方法即可访问内容提供者