首页 > 代码库 > contentResolver.Query()的四个参数

contentResolver.Query()的四个参数

最早的managedQuery ( , , , ,);过时了,现在获取联系人列表的方法是contentResolver.Query()


public final Cursor query (Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder)

Since: API Level 1

Query the given URI, returning a Cursor over the result set.

For best performance, the caller should follow these guidelines:

  • Provide an explicit projection, to prevent reading data from storage that aren‘t going to be used.
  • Use question mark parameter markers such as ‘phone=?‘ instead of explicit values in the selection parameter, so that queries that differ only by those values will be recognized as the same for caching purposes.

Parameters
uri The URI, using the content:// scheme, for the content to retrieve.
projection A list of which columns to return. Passing null will return all columns, which is inefficient.
selection A filter declaring which rows to return, formatted as an SQL WHERE clause (excluding the WHERE itself). Passing null will return all rows for the given URI.
selectionArgs You may include ?s in selection, which will be replaced by the values from selectionArgs, in the order that they appear in the selection. The values will be bound as Strings.
sortOrder How to order the rows, formatted as an SQL ORDER BY clause (excluding the ORDER BY itself). Passing null will use the default sort order, which may be unordered.

Returns
  • A Cursor object, which is positioned before the first entry, or null

上面是2.2版本的api写的。
解释一下:假如一条sql语句如下:
select * from anyTable where var=‘const‘
那么anyTable就是uri,*就是projection,selection是“var=?",selectionArgs写成这样:new String[]{‘const‘}
至于最后一个就简单了,就是排序方式。

contentResolver.Query()的四个参数