managedQuery()

managedQuery()获取一个包含指定数据的Cursor对象,并由Activity来接管这个Cursor的生命周期。首先该函数通过调用getContentResolver().query(uri,projection,selection,selectionArgs,sortOrder…

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 对象中。
例如:
//待查询的columnsString[] 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.content.ContentValues

保存将插入的单一记录的值。ContentValues是一个键/值对字典。

例如:

//将记录填充到ContentValues

ContentValues values = new ContentValues();

values.put(“title”,”New note”);

values.put(“note”,”This is a new note”);

//告诉android.content.ContentResolver使用URI插入记录

ContentResolver contentResolver = new ContentResolver(); //获取ContentResolver的引用

Uri newUri = contentResolver.insert(Notepad.notes.CONTENT_URI,values);//返回的newUri的结构:Notepad.notes.CONTENT_URI/new_id

//获取对文件输出流的引用

OutputStream outStream = contentResolver.openOutputStream(newUri);

someSourceBitmap.compress(Bitmap.CompressFormat.JEPG, 50, outStream);

outStream.close();

转载于:https://my.oschina.net/aiadaniel/blog/70399

今天的文章managedQuery()分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/29873.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注