Android 内容提供器---内容提供器基础(访问提供器)
在客户端应用程序的进程中的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,… |
指定行的排序标准 |