一、什么是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对象的方法即可访问内容提供者