- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
content provider example
上文简要介绍了Android应用程序组件Content Provider在应用程序间共享数据的原理,但是没有进一步研究它的实现。本文将实现两个应用程序,其中一个以Content Provider的形式来提供数据访问入口,另一个通过这个Content Provider来访问这些数据。本文的例子不仅可以为下文分析Content Provider的实现原理准备好使用情景,还可以学习到它的一个未公开接口。
?? ? ? ?本文中的应用程序是按照上一篇文章Android应用程序组件Content Provider简要介绍和学习计划中提到的一般应用程序架构方法来设计的。本文包含两个应用程序,其中,第一个应用程序命名为ArticlesProvider,它使用了SQLite数据库来维护一个文章信息列表,同时,它定义了访问这个文章信息列表的URI,这样,我们就可以通过一个Content Provider组件来向第三方应用程序提供访问这个文章信息列表的接口;第二个应用程序命名为Article,它提供了管理保存在ArticlesProvider应用程序中的文章信息的界面入口,在这个应用程序中,用户可以添加、删除和修改这些文章信息。接下来我们就分别介绍这两个应用程序的实现。
?? ? ? ?1. ArticlesProvider应用程序的实现
?? ? ? ? 首先是参照在Ubuntu上为Android系统内置Java应用程序测试Application Frameworks层的硬件服务一文,在packages/experimental目录下建立工程文件目录ArticlesProvider。在继续介绍这个应用程序的实现之前,我们先介绍一下这个应用程序用来保存文章信息的数据库的设计。
?? ? ? ? 我们知道,在Android系统中,内置了一款轻型的数据库SQLite。SQLite是专门为嵌入式产品而设计的,它具有占用资源低的特点,而且是开源的,非常适合在Android平台中使用,关于SQLite的更多信息可以访问官方网站。
?? ? ? ??ArticlesProvider应用程序就是使用SQLite来作为数据库保存文章信息的,数据库文件命名为Articles.db,它里面只有一张表ArticlesTable,表的结构如下所示:
?? ? ? ? -------------------------------------------------------------
?? ? ? ? |?--?_id?--?|?-- ?_title?--?|?--?_abstrat?--?|?--?_url?--?|
?? ? ? ? -------------------------------------------------------------
?? ? ? ? | ? ? ? ? ? ? ? | ? ? ? ? ? ? ? ? ? ?| ? ? ? ? ? ? ? ? ? ? ? ?| ? ? ? ? ? ? ? ? ?|?
?? ? ? ?它由四个字段表示,第一个字段_id表示文章的ID,类型为自动递增的integer,它作为表的key值;第二个字段_title表示文章的题目,类型为text;第三个字段_abstract表示文章的摘要,类型为text;第四个字段_url表示文章的URL,类型为text。注意,当我们打算将数据库表的某一列的数据作为一个数据行的ID时,就约定它的列名为_id。这是因为我们经常需要从数据库中获取一批数据,这些数据以Cursor的形式返回,对这些返回来的数据我们一般用一个ListView来显示,而这个ListView需要一个数据适配器Adapter来作为数据源,这时候就我们就可以以这个Cursor来构造一个Adapter。有些Adapter,例如android.widget.CursorAdapter,它们在实现自己的getItemId成员函数来获取指定数据行的ID时,就必须要从这个Cursor中相应的行里面取出列名为_id的字段的内容出来作为这个数据行的ID返回给调用者。当然,我们不在数据库表中定义这个_id列名也是可以的,不过这样从数据库中查询数据后得到的Cursor适合性就变差了,因此,建议我们在设计数据库表时,尽量设置其中一个列名字_id,并且保证这一列的内容是在数据库表中是唯一的。
?? ? ? ?下面我们就开始介绍这个应用程序的实现了。这个应用程序只有两个源文件,分别是Articles.java和ArticlesProvider,都是放在viders.articles这个package下面。在Articles.java文件里面,主要是定义了一些常量,例如用来访问文章信息数据的URI、MIME(Multipurp
您可能关注的文档
- 2013八年级英语Unit4What’s_the_best_movie_theater_课件SectionA 1a_1c.ppt
- 2013年八年级英语上册 Unit 1 Where did you go on vacation Section A 2d课件 (新版)人教新目标版.ppt
- 2013年八年级英语上册 Unit 1 Where did you go on vacation Section A 2d.ppt
- 2013年江苏新教材 牛津英语七年级下 Unit7 Abilities Task.ppt
- 2013年春人教版七年级UNIT2Section B (1a-3b).ppt
- 2013高考英语一轮总复习优化课件(山东专用):Unit3 The Million Pound Bank Note.ppt
- 2013高考英语一轮总复习优化课件(山东专用):Unit4 Making the news.ppt
- 2013高考英语写作练习A3.ppt
- 2014·新课标高考总复习·英语Book 4 板块八 Modules 5.ppt
- 2014一模-东城英语.doc
最近下载
- 2017年版2020年修订高中课程标准培训《高中体育与健康课程标准的继承、创新与发展》.ppt VIP
- N2010色谱工作站说明书.doc VIP
- 2017年版2020年修订高中课程标准培训《基于学科核心素养的高中体育与健康教学改革》.ppt VIP
- 涂塑钢管焊接施组方案.pptx VIP
- TCECS1179-2022 预铺防水卷材应用技术规程.pdf VIP
- 普通高中体育与健康课程标准2017年版2020年修订解读与培训课件.pptx VIP
- 2025届高考数学复习 解析几何 备考策略课件.pptx
- 仪表实操题集.doc VIP
- 2023年煤矿企业安全生产管理人员考试题库.pdf VIP
- 【总结】水利工程建设监理工作总结报告..docx VIP
文档评论(0)