managedQuery()与getContentResolver().query()的区别:
Romain Guy写道:
http://groups.google.com/group/android-developers/browse_thread/thread/9c887ac024b36798
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.)
mangedQuery会实际查询的工作还是调用ContentResolver的query这一点与getContentResolver一样,但managedQuery会让Activtiy来帮你管理你的cursor的,而不用你自己去管理。
分享到:
相关推荐
`getContentResolver().query()`则用于查询与URI关联的Cursor,从中我们可以获取到图片的本地路径,并将其显示在TextView上。 总结起来,在Android 4.4及更高版本中获取相册图片和路径的关键在于适配新的API,如`...
Cursor cursor = getContentResolver().query(uri, null, null, null, null); // 查询联系人信息并按名字升序排序 String[] projection = new String[] { People._ID, People._COUNT, People.NAME, People....
Cursor cursor = getContentResolver().query( Uri uri, // 要查询的数据源 String[] projection, // 需要返回的列 String selection, // 选择条件 String[] selectionArgs, // 选择参数 String sortOrder // ...
#### 四、managedQuery与query的区别 在Android中,`managedQuery`和`query`都是用于查询数据库的方法,但它们存在一定的区别。 **1. managedQuery与query的不同** - **managedQuery**:这是一个由`Activity`类...
5. **优化与性能**:为了提高性能,ContentProvider应尽量减少不必要的数据操作,避免在`query()`、`insert()`等方法中执行耗时的操作。使用`CursorLoader`或`AsyncTask`可以帮助异步加载数据,避免阻塞UI线程。 6....
1. 获取ContentResolver:通过Activity或Context的getContentResolver()方法获取ContentResolver对象,这是与ContentProvider交互的主要工具。 2. 数据操作:利用ContentResolver执行对数据的操作,包括: - 查询...
接着,使用`managedQuery()`方法执行查询,其中参数包括外部内容URI、需要查询的列、筛选条件、分组方式以及排序方式。这里我们没有进行分组和排序,因此传入`null`。 ```java Cursor cursor = this.managedQuery( ...
查询操作通常通过 `ContentResolver.query()` 或 `Activity.managedQuery()` 方法执行。后者除了返回 `Cursor` 对象外,还会自动管理 `Cursor` 的生命周期,例如在 Activity 暂停或销毁时关闭 `Cursor`,以防止资源...
Bitmap bitmap = BitmapFactory.decodeStream(getContentResolver().openInputStream(uri)); ImageView imageView = (ImageView) findViewById(R.id.iv); imageView.setImageBitmap(bitmap); } catch ...
这通常涉及到使用`ContentResolver`和`managedQuery()`方法。在示例中,我们查询`MediaStore`来获取图像数据,设置列`MediaStore.Images.Media.DATA`作为查询的目标。`MediaStore.Images.Media.DATA`是图片的本地...
在移动应用开发领域,特别是Android平台上,能够高效地与系统内置服务进行交互是提升用户体验的关键之一。其中,利用Android系统的日历功能就是一个典型的例子。通过本文档,我们将深入探讨如何在Android应用程序中...
cursor = mContext.getContentResolver().query(uri, null, null, null, null); if (cursor != null) { cursor.moveToFirst(); // do something } } catch (Exception e) { e.printStackTrace(); } finally ...
在`onCreate`方法中,通过调用`getContentResolver().registerContentObserver`方法注册`ContentObserver`。传入的`Uri`为`"content://sms/"`,表示监听整个短信数据库的变化;`true`参数表示监听所有子路径下的变化...
// Run query Uri uri = Uri.parse("content://icc/adn"); String[] projection = new String[]{"name", "phone"}; String selection = null; String[] selectionArgs = null; String sortOrder = "name" + ...
Cursor c = managedQuery(uri, projection, null, null, null); // 实例化桌号下拉列表Spinner的Adapter SimpleCursorAdapter adapter2 = new SimpleCursorAdapter(this, android.R.layout.simple_spinner_item,...
本文将详细探讨如何利用CursorLoader实现这一功能,避免使用已废弃的`managedQuery`方法,同时确保性能和用户体验。 首先,理解CursorLoader的作用至关重要。CursorLoader是Android中的一个异步加载器,它继承自...
1. **Activity与程序入口**:在Android中,Activity是应用程序的基本组件,用于与用户交互。每个Activity都可以有多个Intent Filter,但只有一个被标记为`android.intent.action.MAIN`和`android.intent.category....