`
jacky-zhang
  • 浏览: 315753 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

managedQuery()和ContentResolver.query()的区别

 
阅读更多
managedQuery() will use ContentResolver's query(). The difference is that with managedQuery() the activity will keep a reference to your Cursor and close it whenever needed (in onDestroy() for instance.) If you do query() yourself, you will have to manage the Cursor as a sensitive resource. If you forget, for instance, to close() it in onDestroy(), you will leak underlying resources (logcat will warn you about it.)

To query a content provider, you can use either the ContentResolver.query() method or the Activity.managedQuery() method. Both methods take the same set of arguments, and both return a Cursor object. However, managedQuery() causes the activity to manage the life cycle of the Cursor. A managed Cursor handles all of the niceties, such as unloading itself when the activity pauses, and requerying itself when the activity restarts. You can ask an Activity to begin managing an unmanaged Cursor object for you by calling Activity.startManagingCursor().
分享到:
评论

相关推荐

    Android基础ContentProviderPPT学习教案.pptx

    查询数据时,使用ContentResolver.query()方法,传入适当的参数。例如,可以指定需要返回的列(projection),选择特定的行(selection),设置筛选参数(selectionArgs)以及排序顺序(sortOrder)。返回的Cursor...

    android中Content Proviter的使用方法总结

    查询操作通常通过 `ContentResolver.query()` 或 `Activity.managedQuery()` 方法执行。后者除了返回 `Cursor` 对象外,还会自动管理 `Cursor` 的生命周期,例如在 Activity 暂停或销毁时关闭 `Cursor`,以防止资源...

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

    然而,从Android 4.4开始,`managedQuery()`已被废弃,取而代之的是`getContentResolver().query()`。同时,为了兼容新旧API,我们可以根据设备的Android版本选择使用`ACTION_GET_CONTENT`或`ACTION_OPEN_DOCUMENT`...

    Android开发问题集锦第三期

    在Android中,`managedQuery`和`query`都是用于查询数据库的方法,但它们存在一定的区别。 **1. managedQuery与query的不同** - **managedQuery**:这是一个由`Activity`类提供的方法,用于查询内容提供者(Content...

    Android基础ContentProvider学习教案.pptx

    `ContentResolver`提供了查询、插入、更新和删除数据的方法。 **获取ContentResolver对象:** - 通常情况下,可以通过`Activity`或`Context`的方法`getContentResolver()`来获取`ContentResolver`实例。 **常用...

    Content Provider

    // 使用 ContentResolver 或 Activity 的 managedQuery 方法查询数据 Uri uri = ContentUris.withAppendedId(People.CONTENT_URI, 5); // 指定 ID 的 URI Cursor cursor = getContentResolver().query(uri, null, ...

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

    这通常涉及到使用`ContentResolver`和`managedQuery()`方法。在示例中,我们查询`MediaStore`来获取图像数据,设置列`MediaStore.Images.Media.DATA`作为查询的目标。`MediaStore.Images.Media.DATA`是图片的本地...

    android读取sd卡中音乐文件列表

    在Android中,可以通过`Content Provider`机制来访问存储在设备上的媒体文件,包括音频、视频和图片等。对于音频文件,系统提供了一个名为`MediaStore.Audio.Media`的内置Content Provider。该Provider包含了一系列...

    基于Android ContentProvider的总结详解

    应用程序需要继承ContentProvider类并实现其核心方法,如`query()`、`insert()`、`delete()`和`update()`,以提供对数据的访问。 - **Uri(Uniform Resource Identifier)**:Uri是ContentProvider中用于定位数据...

    【Android】分享照片时,进入图库选取照片.doc

    在上述代码中,我们首先检查请求码和结果码是否符合预期,然后通过`getData()`获取URI,并使用`openInputStream()`方法读取Bitmap。接着,我们将Bitmap设置到ImageView上,以便显示所选照片。此外,还可以通过查询...

    android读取内存卡文件方法

    ContentResolver则是应用与ContentProvider进行交互的接口,它提供了查询、插入、删除和更新数据的方法。在读取内存卡文件时,我们主要利用ContentResolver来获取数据。 ### 知识点二:使用ContentResolver读取...

    Android实例剖析笔记

    - **数据查询**:利用`managedQuery()`方法结合ContentResolver对象,可以查询ContentProvider提供的数据。例如,查询Google NotePad应用中的笔记数据,通过`content://com.google.provider.NotePad/notes` URI进行...

    调用Android自带日历功能

    这通常涉及到创建一个`ContentValues`对象,将要插入的数据封装起来,然后使用`ContentResolver`的`insert()`方法将其写入系统日历表中。下面是一个具体的示例: ```java // 创建一个ContentValues对象,并填充数据...

    androidSIM

    在深入探讨给定的代码片段和描述之前,我们先来明确一下标题“androidSIM”以及描述中的重复字样“androidSIMandroidSIM”所指向的核心概念。这里提到的“androidSIM”显然是指Android系统中与SIM卡相关的操作和功能...

    android 监听短信数据库

    在`onChange`方法中,使用`managedQuery`方法动态查询短信数据库。这里的`Uri`指定为`"content://sms/inbox"`,意味着查询的是收件箱中的短信。查询参数中包含了`_id`(短信ID)、`address`(发送方电话号码)和`...

    信息系统集成项目经理继续教育课程11学习笔记.pdf

    查询联系人数据时,可以使用`managedQuery()`方法,它接受五个参数:URI、投影(projection,即要查询的字段)、选择条件(selection)、选择条件参数(selectionArgs)和排序顺序(sortOrder)。例如,要按姓名筛选...

    Android平台开发技巧大全.pdf

    `managedQuery()`的参数则包含了数据URI、所需字段、查询条件和排序方式。 除了以上几点,Android平台开发还包括布局设计、UI交互、性能优化、网络通信、多线程处理、权限管理、通知机制等多个方面。开发者需要熟练...

    安卓开发数据库

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

Global site tag (gtag.js) - Google Analytics