18、内容提供者
18.1、内容提供者简介
- 内容提供者(ContentProvider)是Android系统四大组件之一,用于保存和检索数据,Android系统中不同应用程序之间共享数据的接口。
- ContentProvider是不同应用程序之间进行数据交换的标准API,以Uri形式对外提供数据,允许其他应用操作本应用数据。其他应用则使用ContentResolver,并根据ContentProvider提供的Uri操作指定数据。
18.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>
18.3uri简介
contentprovider的几个抽象方法,这几个抽象方法中有一个参数uri,它代表了数据的操作方法,uri是由scheme、authorites、path三部分组成
urimatcher中的常用方法如表所示
18.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);
…
}
cursor.close():
18.4生么是内容观察者
contentobserver常用方法