很简单.这三者有什么区别?
我想列出设备中的每个图像.我应该使用managedQuery(),android.provider.MediaStore.Images.Media.query()还是context.getContentResolver.query()
Pen*_*m10 72
managedQuery()将使用ContentResolver的查询().不同之处在于,managedQuery()活动将保留对Cursor的引用并在需要时关闭它(onDestroy()例如.)如果您query()自己动手,则必须将Cursor作为敏感资源进行管理.如果你忘了,例如,要close()在它
onDestroy(),你会泄漏底层资源(logcat中会提醒你一下吧.)
要查询内容提供程序,可以使用ContentResolver.query()方法或Activity.managedQuery()方法.两种方法都使用相同的参数集,并且都返回Cursor对象.但是,managedQuery()导致活动管理Cursor的生命周期.托管Cursor处理所有细节,例如在活动暂停时卸载自身,并在活动重新启动时重新查找自身.您可以通过调用要求Activity开始为您管理非托管Cursor对象Activity.startManagingCursor().
更新:
managedQuery 现已弃用(从Android 3.0开始).
小智 23
managedQuery(..)现已弃用(从Android 3.0开始).小心..
Android错误:java.lang.IllegalStateException:尝试重新查询已经关闭的游标
| 归档时间: |
|
| 查看次数: |
41570 次 |
| 最近记录: |