Android 内容提供器---内容提供器基础(访问提供器)

应用程序使用ContentResolver客户端对象访问来自客户端的数据。这个对象有一些与提供器中相同的命名的方法,提供器是ContentProvider的一个具体的子类的实例。ContentResolver对象的方法提供了基本的“CRUD”(创建、获取、更新和删除)持久化保存的功能。

在客户端应用程序的进程中的ContentResolver对象和提供器自己应用中的ContentProvider对象自动的处理进程间通信。ContentProvider对象也以表的形式在数据资源库和数据的外部表现之间扮演着抽象层的角色。

注意:要访问一个提供器,通常需要在清单文件中要请求一个特殊的许可。更详细的描述请看“内容提供器许可”

例如,要从用户字典提供器中获得单词和位置的列表,你要调用ContentResolver.query()方法。Query()方法会调用由用户字典提供器定义的ContentProvider.query()方法。以下代码显示了ContentResolver.query()方法的调用:

// Queries the user dictionary and returns results
mCursor = getContentResolver().query(
    UserDictionary.Words.CONTENT_URI,   // The content URI of the words table
    mProjection,                        // The columns to return for each row
    mSelectionClause                    // Selection criteria
    mSelectionArgs,                     // Selection criteria
    mSortOrder);                        // The sort order for the returned rows

表2显示了query(Uri, projection, selection, selectionArgs, sortOrder)方法的参数是如何跟SQL的Select语句进行匹配的:

表2:query()方法跟SQL查询比较。

query()方法参数

SELECT关键字/参数

说明

Uri

FROM table_name

Uri映射到提供器中命名的表

projection

Col, col, col,…

每一行中要选取的列的数组。

selection

WHERE col= value

指定选择条件

selectionArgs

用于替换selectiong参数中“?”的值。

 

sortOrder

ORDER BY col, col,…

指定行的排序标准

posted @ 2012-02-29 19:32  andriod2012  阅读(245)  评论(0编辑  收藏  举报