内容提供者简介

1、

内容提供者(ContentProvider)是Android系统四大组件之一,用于保存和检索数据,Android系统中不同应用程序之间共享数据的接口。
ContentProvider是不同应用程序之间进行数据交换的标准API,以Uri形式对外提供数据,允许其他应用操作本应用数据。其他应用则使用ContentResolver,并根据ContentProvider提供的Uri操作指定数据。

2、创建一个内容提供者
定义一个类继承android.content包下的ContentProvider类(抽象类)。子类需要重写它的onCreate()、delete()、getType()、insert()、query()、update()这几个抽象方法。
ContentProvider是四大组件之一,必须要在清单文件中注册
<provider>
android:name="cn.itcast.db.PersonDBProvider"
android:authorities="cn.itcast.db.personprovider">
</provider>

3.uri简介
contentprovider的几个抽象方法,这几个抽象方法中有一个参数uri,它代表了数据的操作方法,uri是由scheme、authorites、path三部分组成

scheme:“ content”是一个标准的前缀,表明这个数据被内容提供者所
控制,它不会被修改;

authorities: "cr.ias. b. personprovider”是在清单文件中指定的

android: authorities属性值,该值必须唯一,它表示了当前的内容提供者;

ath:“ /person”代表资源(或者数据),当访问者需要操作不同数据时这个部分是动态改变的

3、ContentResolver的基本用法

在Android系统中,ContentResolver充当着桥梁的角色。应用程序通过ContentProvider暴露自己的数据,通过ContentResolver对应用程序暴露的数据进行操作。
通过ContentResovler对象实现数据的操作代码如下:
Uri uri=Uri.parse(“content://cn.itcast.db.personprovider/person”);
ContentResolver resolver=context.getContentResolver();
Cursor cursor = resolver . query ( un , new String ( " address " , " date " , " type " , " body " ) , null , null , null )
while(cursor.moveToNext()){
String address=cursor.getString(0)

猜你喜欢

转载自blog.51cto.com/14589602/2650738