content provider详解.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
content provider详解

内容提供者-Content?ProviderContent?providers管理对结构化数据集的使用.它们封装数据,并提供了数据安全的机制.Content?providers是从一个进程连接另一个进程中的数据的标准接口.?当你想使用一个content?provider中的数据,你需在你的应用的Context?中使用ContentResolver对象作为客户端与provider?进行通讯.ContentResolver对象与provider对象通讯,provider是实现ContentProvider的类.Provider对象接收客户端发来的请求,执行请求的动作,返回结果.?如果你不想把你的数据共享给其它应用,你不需开发你自己的provider.然而,你需要自己的provider来在你的应用中提供自定义搜索建议.如果你需要从你的应用中考贝复杂的数据或文件粘贴到其它应用中,你也需要提供自己的provider.?Android自己包含了管理音频,视频,图像,个人通讯录等数据的content?providers.你可以从android.provider?包的参考文档中爪到它们.这些providers?可以被所有的android应用使用,但可能带有一些限制.?Content?Provider?基础一个content?provider?管理对中央数据仓库的使用.一个provider是一个Android应用的一部分,应用一般提供它自己的UI来操作数据.然而,content?providers主要是为了给其它应用使用,其它的应用使用provider客户端对象来操作provider.providers?和provider客户端一起提供了一致的,标准的接口来操作用于进程间通讯的数据并保处数据的安全性.?本节讲解以下基础知识:·?content?providers如何工作.·?从content?provider取得数据的API.·?向content?provider插入,更新以及删除数据的API.·?其它有助于使用providers的API.概述一个content?provider代表了面向外部应用的数据,这些数据看起来就像关系型数据库中的一个或多个table.一行代表某种数据类型的一个实例,一列代表这个实例的一个属性或字段.举个例子,Android平台中的一个内建的provider是用户词典,它存储了用户想保存的非标准词的拼写.表1?演示了数据在provider的表中可能看起来的样子:Table?1:?简单用户词典表wordapp?idfrequencylocale_IDmapreduceuser1100en_US1precompileruser14200fr_FR2appletuser2225fr_CA3constuser1255pt_BR4intuser5100en_UK5在上表中,每行代表了一个不能在标准字典中找到的词.每一列代表了这个词了一个属性.列头是存储在provider中的列的名字.要引用一行的locale属性,需引用locale?列.对于这个provider,_ID列作为主键列,provider会自动管理它.注:一个provider不是必须具备主键的,并且也不是必须使用_ID?作为主键的列名来引用一行.然而,如果你把一个provider绑定到一个ListView,就必须有一个列名叫做_ID.此需求将在显示查询结果一节中有详细的解释.操作一个provider应用使用ContentResolver客户端对象来操作content?provider中的数据.此对象具有一些与provider?对象中同名的方法,provider对象指的是某个ContentProvider具体派生类的实例.ContentResolver?的方法们提供了对存储数据的基本的CRUD?(增删改查)功能.ContentResolver?对象处于客户端应用的线程中,ContentProvider?对象位于另外的进程并且自动处理进程间通讯.?ContentProvider?也代表了数据层与可视层之间的一个抽象层.注:要使用一个provider,你的应用通常需要在manifest请求一些权限,?这将在Content?Provider?权限一节中进行更详细的讲解.举个例子,要从用户词典Provider中获取取单词和它们的locale列表,你需调用ContentResolver.query().query()?方法会调用用户词典中的ContentProvider.query()?方法.下面的代码演示了ContentResolver.query()?调用://?查询用户词典并返回结果mCursor?=?getContentResolver().query(????UserDic

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档