ContentProvider是Android四大组件之一,所以如果是自己实现ContentProvider,需要在AndroidManifest.xml文件中进行声明,幸运的是,我们很少需要自己定义实现它,一般我们的开发只需要用到系统自己提供的ContentProvider,使用起来非常方便。
首先来让我们认识ContentProvider:
基本概念:
1.ContentProvider提供为存储和获取数据提供了统一的接口
2.使用ContentProvider可以在不同的应用程序之间共享数据
3.Android为常见的一些数据提供了ContentProvider
下面我开始介绍实现ContentProvider的过程:
1.定义一个CONTENT_URI常量
2.定义一个雷,继承自ContentProvider
3.实现query,insert,update,delete,getType和onCreate方法
4.在AndroidManifest.xml文件中进行声明
ContentProvider提供了一系列的函数,当自己实现ContentProvider需要实现这些方法:
1.query()
2.insert()
3.update()
4.delete()
5.getType()
6.onCreate()
接下来详细介绍ContentProvider:
*一.初识Content Provider
* 1.简介
* 1.1 Content Provider实现了一组通用的方法来提供数据的增删改查的功能
* 1.2 客户端通常不会直接使用这些方法,大多数都是通过ContentResolver对象实现对Content Provider的操作
* 1.3 开发一般会通过调用方法获得ContentProvider对象
* 例如:ContentResolver cr=getContentResolver
* 使用ContentResolver提供的方法可以获得ContentProvider中任何感兴趣的对象
* 2.数据模型
* 2.1 ContentProvider使用基于数据库模型的简单表格来提供其中的数据,其中每一行都代表一个记录,
* 每一列代表特定类型和含义的数据,其中每条记录包含一个数值型的_ID字段,用于在表格中唯一标识该记录
* 注意:ID字段前还包含了一个下划线
* 2.2 查询返回一个Cursor对象,它能遍历各行各列来读取每个字段的值。对于各个类型的数据,Cursor对象都提供了
* 专用的方法,因此,为了读取字段的数据,开发人员必须要知道当前字段包含的数据类型
* 注意:Cursor的使用方法:通过查询,它会指向第一个记录之前,所以需要开发者moveToNext,且查询字段的动作是
* 先指向某一条记录,即指向某一行,再从某一列或多列中取得数据,且需要知道数据类型(列数据),例如:
* int id=cursor.getInt(idIndex);
* String name=cursor.getString(displayNameIndex);
* 3.URI的用法
* 3.1 每个Content Provider提供公共的URI(使用Uri类包装)来唯一标识其数据集。管理多个数据集(多个表格)的
* Content Provider为每个都提供了单独的URI,且URI的标识有固定的格式
* 3.2 UIR常量用于所有与Content Pr