1} Content Provider
1)Content Provider 作用
1、Content Provider 提供了访问数据统一的接口。
2、Content Provider 可以使数据在不同的应用程序之间实现共享。
3、Android为常见的一些数据提供了Content Provider (包括音频、视频、图片和通讯录等)
2)数据模型
对于Content Provider 来说,数据都是表的形式。
3)URI :统一资源标识符
1. 每一个Content Provider 都拥有一个公共的URI,这个URI用于表示这个Content Provider 所提供的数据。
2. Android所提供的Content Provider 都存放android.provider包当中。
4)Content Provider 所提供的函数
1. query() : 查询
2. insert() :插入
3. update() :更新
4. delete(): 删除
5. getType(): 得到数据类型
6. onCreate(): 创建时回调函数
2} 实现Content Provider
实现Content Provider 要哪些步骤:
1、定义一个CONTENT_URI常量
2、定义一个类,继承Content Provider
3、实现 query,insert,update,delete,getType,onCreate方法
4、在AndroidManifest.xml当中进行声明
1)CONTENT_URI
FirstProviderMetaData.java :这里专门定义了一个类来处理这些数据的定义
public class FirstProviderMetaData {
public static final String AUTHORIY = "mars.cp.FirstContentProvider";
//数据库名称
public static final String DATABASE_NAME = "FirstProvider.db";
//数据库的版本
public static final int DATABASE_VERSION = 1;
//表名
public static final String USERS_TABLE_NAME = "users";
public static final class UserTableMetaData implements BaseColumns{
//表名
public static final String TABLE_NAME = "users";
//访问该ContentProvider的URI
public static final Uri CONTENT_URI = Uri.parse("content://" + AUTHORIY + "/users");
//该ContentProvider所返回的数据类型的定义
public static final String CONTENT_TYPE = "vnd.android.cursor.dir/vnd.firstprovider.user";
public static final String CONTENT_TYPE_ITEM = "vnd.android.cursor.item/vnd.firstprovider.user";
//列名
public static final String USER_NAME = "name";
//默认的排序方法
public static final String DEFAULT_SORT_ORDER = "_id desc";
}
}