managedQuery和getContentResolver这两个方法的原理是什么

sis_ying 2010-10-24 04:53:01


学习了一下ContentProvider,照着书上的例子,写了一个小Demo,主要有三个类ContactList.java,PersonInfo.java,DbAccess.java 第一个类是UI界面Activity,第二个类中定义数据库的字段和Uri,第三个类继承自ContentProvider,主要是数据库的操作。
现在我在ContactList.java添加记录和查询记录,如果直接创建一个DbAccess.java的对象db,然后调用db.insert 和db.query来添加或者查询就会有问题,我看书上的代码,它的查询使用managedQuery,插入是用getContentResolver().insert ,通过跟踪managedQuery我发现这个方法,最终是要调用DbAccess.java 类中的Query方法的,getContentResolver().insert最终是要调用DbAccess.java中的insert方法的,对于这一点我很不解。
managedQuery的原理是什么,为什么会调用到DbAccess.java中的query
getContentResolver这个方法到底是干什么的,为什么getContentResolver().insert会调用DbAccess.java中的insert ??
...全文
4017 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
a26651551 2012-10-29
  • 打赏
  • 举报
回复
好深奥的问题啊。。
sada09 2011-09-01
  • 打赏
  • 举报
回复
没到这个层次啊
wwmldx 2011-08-26
  • 打赏
  • 举报
回复
学习了。但是还没有搞懂。。。
youly 2011-07-12
  • 打赏
  • 举报
回复
又一次学习了!
ylczj 2011-06-28
  • 打赏
  • 举报
回复
呵呵。。。
a343931720 2011-05-05
  • 打赏
  • 举报
回复
看看正解
hacker1125 2011-04-13
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 zkhhjjcyt 的回复:]
重点这句: However, managedQuery() causes the activity to manage the life cycle of the Cursor. 产生的游标的生命周期和当前activity关联,activity销毁,Cursor销毁...
[/Quote]

正解!managedQuery是同activity,有生命周期。也只有在activity类或者派生类中操作。

zkhhjjcyt 2011-03-23
  • 打赏
  • 举报
回复
重点这句: However, managedQuery() causes the activity to manage the life cycle of the Cursor. 产生的游标的生命周期和当前activity关联,activity销毁,Cursor销毁...
zkhhjjcyt 2011-03-23
  • 打赏
  • 举报
回复
Making the query

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().
zkhhjjcyt 2011-03-23
  • 打赏
  • 举报
回复
getContentResolver是对其他应用程序暴露数据的类似接口的方法...
fengzhigen 2011-03-03
  • 打赏
  • 举报
回复
不懂二楼所说的
hehe1234567_ 2010-11-16
  • 打赏
  • 举报
回复
xiexie
dinjay 2010-10-24
  • 打赏
  • 举报
回复
managedQuery是依赖activity的,只不过里面android又包了一些查询方法而已。
getContentResolver也是一样的,获取cursor后最终修改查询的那些方法都是基本的数据库操作的方法,就是封装了一下,联系人有自己的数据库文件,你当然可以自己去打开那个联系人的数据库文件,然后实现修改等操作,但是这样可能是不安全的,android又包了一些接口,自然有它的道理,应该是做了一些优化和异常的处理吧。
特等奖标准成品论文(Word无水印纯净版) 硬核结构:全文包含完整的摘要、问题重述与分析、模型假设、符号说明、模型建立与求解、灵敏度分析及结论。 即插即用:排版严格遵循官方规范,逻辑严密。拿到手即可作为绝佳的高分参考模板,稍作替换与个性化润色即可极速完稿,彻底解决写论文难的痛点。 双源硬核解题代码(Python与MATLAB双版本) 拒绝假代码:提供底层逻辑清晰、模块化设计的全套可运行源码。 全流程覆盖:涵盖从前期数据清洗预处理,到中期核心数学模型训练,再到后期启发式算法寻优。 傻瓜式运行:代码自带详尽的逐行中文注释,并支持一键生成高质量结果可视化图表,编程小白也能轻松复现与二次开发。 全量数据与结果展示表 所有中间处理数据、模型输出参数以及最终结论,均已精细整理成高质量表格。直观呈现性能评估指标与多模型对比分析,可直接作为论文正文或附件使用,极大提升学术说服力。 独家硬核思路解析 深入浅出剖析出题人意图,详细拆解每一小问的数学本质与底层逻辑,让你不仅知其然更知其所以然。 【四大核心产品优势】 高效实用:所有代码与论文均经过严格测试,确保结果精准无误、完全可复现,省去熬夜试错的时间。 全栈覆盖:从思路分析到跑出结果,再到写出高质量论文,提供一站式全流程资料矩阵。 排版辅助:资料内提供专业的论文排版一键转换工具与官方标准模板,告别格式调整的繁琐。 持续迭代:网盘直发,开赛后资料库将持续滚动更新,所有用户均可免费同步获取最新包。 【适用人群】 想要打破建模瓶颈的参赛队长与主攻手;急需高质量底层代码的编程小白;目标直指特等奖需要高分模板对标的精英团队。

80,490

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧