`
啸笑天
  • 浏览: 3436280 次
  • 性别: Icon_minigender_1
  • 来自: China
社区版块
存档分类
最新评论

Android API:Activity.managedQuery()

阅读更多

描述:

获取一个包含指定数据的 Cursor 对象,并由 Activity 来接管这个 Cursor 的生命周期。

首先该函数通过调用 getContentResolver().query(uri, projection, selection, selectionArgs, sortOrder) 获取一个包含指定数据(由 query 方法的参数指定)的 Cursor 对象。

然后通过调用 startManagingCursor(c) 实现由 Activity 来接管返回的 Cursor c 的生命周期。

 

原型:

public final Cursor managedQuery(Uri uri,

                                 String[] projection,

                                 String selection,

                                 String[] selectionArgs,

                                 String sortOrder)

{

    Cursor c = getContentResolver().query(uri, projection, selection, selectionArgs, sortOrder);

    if (c != null) {

        startManagingCursor(c);

    }

    return c;

}

 

 参数:

uri, 用于 Content Provider 查询的 URI,也就是说从这个 URI 中获取数据。例如:

Uri uri = Contacts.People.CONTENT_URI;   //联系人列表URI。

projection, 用于标识 uri 中有哪些 columns 需要包含在返回的 Cursor 对象中。例如:

//待查询的columns

String[] projection = { Contacts.PeopleColumns.NAME, Contacts.PeopleColumns.NOTES }; 

selection, 作为查询的过滤参数(过滤出符合 selection 的数据),类似于 SQL 中 Where 语句之后的条件选择。例如:

String selection = Contacts.People.NAME + “=?” //查询条件

selectionArgs, 查询条件参数,配合 selection 参数使用。例如:

String[] selectionArgs = {“Braincol”, “Nixn.dev”};//查询条件参数

sortOrder,查询结果的排序方式(按查询列( projection 参数中的 columns )中的某个 column )排序)。例如:

String sortOrder = Contacts.PeopleColumns.NAME; //查询结果的排序方式(按指定的查询列排序)

 

返回值:

一个包含指定数据的 Cursor 对象。

 

示例:

Uri uri = Contacts.People.CONTENT_URI;

String[] projection = { Contacts.PeopleColumns.NAME,

        Contacts.PeopleColumns.NOTES };

String selection = Contacts.PeopleColumns.NAME + "=?";

String[] selectionArgs = { "Braincol","Nixn.dev" };

String sortOrder = Contacts.PeopleColumns.NAME;

//使用 managedQuery 获取 Contacts.People 这个 ContentProvider 的 Cursor。

Cursor cursor = managedQuery(uri, projection, selection, selectionArgs,sortOrder);

上述示例的含义就是:在联系人列表中查询 NAME 为 Braincol 和 Nixn.dev 两个联系人的 "NAME" 和 "NOTES" 信息,并且将这些信息按照名字( NAME )排序,最后将排序之后的结果包装在一个 Cursor 对象中返回。

分享到:
评论

相关推荐

    android获取相册图片和路径的实现方法

    Android开发获取相册图片的方式网上有很多种,这里说一个Android4.4后的方法,因为版本越高,一些老的api就会被弃用,新的api和老的api不兼容,导致出现很多问题。 比如:managedQuery()现在已经被...

    安卓开发数据库

    Cursor c = managedQuery(uri, projection, null, null, null); // 实例化桌号下拉列表Spinner的Adapter SimpleCursorAdapter adapter2 = new SimpleCursorAdapter(this, android.R.layout.simple_spinner_item,...

    contentprovider

    采用sharedpreferences共享数据 需要使用sharedpreferences API读写数据 而使用ContentProvider共享数据的好处是统一了数据访问方式 2)Uri类简介 Uri uri Uri parse "content: ...

    android实现Uri获取真实路径转换成File的方法

    本文实例讲述了android实现Uri获取真实路径转换成File的方法。分享给大家供大家参考。具体实现方法如下: Uri uri = data.getData(); String[] proj = { MediaStore.Images.Media.DATA }; Cursor actualimagecursor...

    android在异步任务中关闭Cursor的代码方法

    查询数据会比较耗时,所以我们想把查询数据放在一个异步任务中,查询结果获得Cursor,然后在onPostExecute (Cursor result)方法中设置Adapter,我们可能会想到使用Activity的managedQuery来生成Cursor,这样Cursor就...

    Android 通讯录 Android contact源代码

    摘要:Java源码,Android源码,通讯录 Android contact通讯录实例,比较不错的例子,来自书中的完整实例,Android手机读取联系人信息、显示、保存、编辑联系人,多卡同时读取联系人等,涉及要点:删除指定数据列、URI...

Global site tag (gtag.js) - Google Analytics