WEB开发网
开发学院手机开发Android 开发 Android Content Provider 详解 阅读

Android Content Provider 详解

 2010-05-31 14:33:00 来源:WEB开发网   
核心提示:values.put(People.NAME, name);Uri uri = getContentResolver().insert(People.CONTENT_URI, values);Log.d(”ANDROID”, uri.toString());Uri numberUri = Uri.withAppende

values.put(People.NAME, name);

Uri uri = getContentResolver().insert(People.CONTENT_URI, values);

Log.d(”ANDROID”, uri.toString());

Uri numberUri = Uri.withAppendedPath(uri, People.Phones.CONTENT_DIRECTORY);

values.clear();

values.put(Contacts.Phones.TYPE, People.Phones.TYPE_MOBILE);

values.put(People.NUMBER, phoneNo);

getContentResolver().insert(numberUri, values);

}

这样我们就可以调用insertRecords(name, phoneNo)的方式来向联系人信息簿中添加联系人姓名和电话号码。

删除记录:

Content Provider中的getContextResolver.delete()方法可以用来删除记录,下面的记录用来删除设备上所有的联系人信息:

private void deleteRecords() {

Uri uri = People.CONTENT_URI;

getContentResolver().delete(uri, null, null);

}

你也可以指定WHERE条件语句来删除特定的记录:

getContentResolver().delete(uri, “NAME=” + “‘XYZ XYZ’”, null);

这将会删除name为‘XYZ XYZ’的记录。

创建Content Provider:

至此我们已经知道如何使用Content Provider了,现在让我们来看下如何自己创建一个Content Provider。

要创建我们自己的Content Provider的话,我们需要遵循以下几步:

1. 创建一个继承了ContentProvider父类的类

2. 定义一个名为CONTENT_URI,并且是public static final的Uri类型的类变量,你必须为其指定一个唯一的字符串值,最好的方案是以类的全名称, 如:

public static final Uri CONTENT_URI = Uri.parse( “content://com.google.android.MyContentProvider”);

3. 创建你的数据存储系统。大多数Content Provider使用Android文件系统或SQLite数据库来保持数据,但是你也可以以任何你想要的方式来存储。

4. 定义你要返回给客户端的数据列名。如果你正在使用Android数据库,则数据列的使用方式就和你以往所熟悉的其他数据库一样。但是,你必须为其定义一个叫_id的列,它用来表示每条记录的唯一性。

5. 如果你要存储字节型数据,比如位图文件等,那保存该数据的数据列其实是一个表示实际保存文件的URI字符串,客户端通过它来读取对应的文件数据,处理这种数据类型的Content

上一页  1 2 3 4 5 6 7  下一页

Tags:Android Content Provider

编辑录入:coldstar [复制链接] [打 印]
赞助商链接