- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ContentObserver类详解(Android中内容观察者的使用)
Android中内容观察者的使用---- ContentObserver类详解
/qinjuning/article/details/7047607
更多应用详解: /qinjuning
前言: 工作中,需要开启一个线程大量的查询某个数据库值发送了变化,导致的开销很大,后来在老大的指点下,利用了
???? ContentObserver完美的解决了该问题,感到很兴奋,做完之后自己也对ContentObserver做下总结。
?
????????? ContentObserver——内容观察者,目的是观察(捕捉)特定Uri引起的数据库的变化,继而做一些相应的处理,它类似于
?? 数据库技术中的触发器(Trigger),当ContentObserver所观察的Uri发生变化时,便会触发它。触发器分为表触发器、行触发器,
? 相应地ContentObserver也分为“表“ContentObserver、“行”ContentObserver,当然这是与它所监听的Uri MIME Type有关的。
?
????? ???? 熟悉Content Provider(内容提供者)的应该知道,我们可以通过UriMatcher类注册不同类型的Uri,我们可以通过这些不同的
??? Uri来查询不同的结果。根据Uri返回的结果,Uri Type可以分为:返回多条数据的Uri、返回单条数据的Uri。
?
?
??注册/取消注册ContentObserver方法,抽象类ContentResolver类中的方法原型如下:
?
????public final void??registerContentObserver(Uri uri, boolean notifyForDescendents, ContentObserver observer)
???????????? 功能:为指定的Uri注册一个ContentObserver派生类实例,当给定的Uri发生改变时,回调该实例对象去处理。
?????????? ??参数:uri??????????需要观察的Uri(需要在UriMatcher里注册,否则该Uri也没有意义了)
??????????????????? ????notifyForDescendents??为false 表示精确匹配,即只匹配该Uri
?????????????????????????????????????????????????????? ????????? ??? 为true 表示可以同时匹配其派生的Uri,举例如下:
??????????????????? ????? 假设UriMatcher 里注册的Uri共有一下类型:
??????????????????????????????? 1 、content://com.qin.cb/student (学生)
??????????????????????????????? 2 、content://com.qin.cb/student/#?
?????????????????????????????? ?3、?content://com.qin.cb/student/schoolchild(小学生,派生的Uri)
?
????????????????????假设我们当前需要观察的Uri为content://com.qin.cb/student,如果发生数据变化的?Uri?为???
?????????? content://com.qin.cb/student/schoolchild ,当notifyForDescendents为 false,那么该ContentObserver会监听不到,??
????????? ?但是当notifyForDescendents 为ture,能捕捉该Uri的数据库变化。
?
???????????????????? observer????? ?ContentObserver的派生类实例
?
?
????public final void??unregisterContentObserver(ContentObserver?observer)
????????? 功能:取消对给定Uri的观察
????????? 参数: observer ContentObserver的派生类实例
?
????????
ContentObserver类介绍
?
??构造方法?public void?ContentObserver(Handler?handler)??
?????????????????????? 说明:所有?? ContentObserver的派生类都需要调用该构造方法
? 参数: handler Handler对象。可以是主
您可能关注的文档
- 茶的产地和品种.doc
- 2 Android消息机制2-Handler(Native层).docx
- 全国大学生英语竞赛试题2006+National+English+Contest+for+College+Students+Level+A.doc
- 英语口语 Native 个性短语.doc
- 冲南外必须掌握的百科知识中英文版.doc
- 主要煤炭装港港口资料.docx
- 地道英文表达native expression.doc
- 医院科室英文名汇总.doc
- 西班牙语在线学习 西语日常用语.docx
- science- 会让你在IELTS写作与口语考试中更像一个Native Speaker的纯正英式短语.docx
文档评论(0)