- 2
- 0
- 约2.4万字
- 约 19页
- 2019-02-09 发布于江苏
- 举报
android四大组件--ContentProvider详解
一、相关ContentProvider概念解析:
1、ContentProvider简介在Android官方指出的Android的数据存储方式总共有五种,分别是:Shared Preferences、网络存储、文件存储、外储存储、SQLite。但是我们知道一般这些存储都只是在单独的一个应用程序之中达到一个数据的共享,有时候我们需要操作其他应用程序的一些数据,例如我们需要操作系统里的媒体库、通讯录等,这时我们就可能通过ContentProvider来满足我们的需求了。
2、为什么要选择ContentProvider?
ContentProvider向我们提供了我们在应用程序之前共享数据的一种机制,而我们知道每一个应用程序都是运行在不同的应用程序的,数据和文件在不同应用程序之间达到数据的共享不是没有可能,而是显得比较复杂,而正好Android中的ContentProvider则达到了这一需求,比如有时候我们需要操作手机里的联系人,手机里的多媒体等一些信息,我们都可以用到这个ContentProvider来达到我们所需。
1)、ContentProvider为存储和获取数据提供了统一的接口。ContentProvide对数据进行封装,不用关心数据存储的细节。使用表的形式来组织数据。2)、使用ContentProvider可以在不同的应用程序之间共享数据。 3)、Android为常见的一些数据提供了默认的ContentProvider(包括音频、视频、图片和通讯录等)。 总的来说使用ContentProvider对外共享数据的好处是统一了数据的访问方式。
3、Uri介绍
为系统的每一个资源给其一个名字,比方说通话记录。1)、每一个ContentProvider都拥有一个公共的URI,这个URI用于表示这个ContentProvider所提供的数据。 2)、Android所提供的ContentProvider都存放在vider包中。 将其分为A,B,C,D 4个部分:A:标准前缀,用来说明一个Content Provider控制这些数据,无法改变的;content://B:URI 的标识,用于唯一标识这个ContentProvider,外部调用者可以根据这个标识来找到它。它定义了是哪个Content Provider提供这些数据。对于第三方应用程序,为了保证URI标识的唯一性,它必须是一个完整的、小写的类名。这个标识在 元素的 authorities属性中说明:一般是定义该ContentProvider的包.类的名称C:路径(path),通俗的讲就是你要操作的 HYPERLINK /database/ \t _blank 数据库中表的名字,或者你也可以自己定义,记得在使用的时候保持一致就可以了;content://vider.myprovider/tablenameD:如果URI中包含表示需要获取的记录的ID;则就返回该id对应的数据,如果没有ID,就表示返回全部; content://vider.myprovider/tablename/# #表示数据id。
PS:
路径(path)可以用来表示我们要操作的数据,路径的构建应根据业务而定,如下:1、要操作person表中id为10的记录,可以构建这样的路径:/person/102、要操作person表中id为10的记录的name字段, person/10/name3、要操作person表中的所有记录,可以构建这样的路径:/person4、要操作xxx表中的记录,可以构建这样的路径:/xxx5、当然要操作的数据不一定来自数据库,也可以是文件、xml或网络等其他存储方式,如下:要操作xml文件中person节点下的name节点,可以构建这样的路径:/person/name6、如果要把一个字符串转换成Uri,可以使用Uri类中的parse()方法,如下:Uri uri = Uri.parse(content://vider.personprovider/person)
4、UriMatcher类使用介绍
因为Uri代表了要操作的数据,所以我们经常需要解析Uri,并从Uri中获取数据。 HYPERLINK /kf/yidong/Android/ \t _blank Android系统提供了两个用于操作Uri的工具类,分别为UriMatcher和ContentUris 。掌握它们的使用,会便于我们的开发工作。UriMatcher类用于匹配Uri,它的用法如下:首先第一步把你需要匹配Uri路径全部给注册上,如下:
//常量UriMatcher.NO_MATCH表示不匹配任何路径的返回码
Uri
您可能关注的文档
- 关于亲情名言有关亲情名言警句.docx
- 关于猪歇后语.doc
- 中医科工作制度岗位职责及诊疗规范.pdf
- 有关孔子歇后语.doc
- 郤姓起源百家姓.doc
- 《第一朵杏花》资料.docx
- 法媒高度关注奥朗德我国行热评其访华首日成果.doc
- 青岛出租汽车客运管理条例.docx
- SCI投稿全过程与编辑沟通邮件模板.docx
- 食品监管职能交接会讲话认真履行监管职责切实抓好食品安全(祁永林).doc
- 山西天一大联考2025-2026学年高二上学期期末学情监测语文试题(试卷+解析).docx
- 山西忻州部分学校2025-2026学年高一上学期2月质量检测数学试题(人教B版)(试卷+解析).docx
- 山西运城市2025-2026学年高二第一学期期末调研测试数学试题(试卷+解析).docx
- 陕西省榆林市榆阳区2025-2026学年八年级上学期期末地理试题(试卷+解析).docx
- 陕西西安市碑林区2025-2026学年度第一学期期末八年级生物试题(试卷+解析).docx
- 四川省广元市苍溪县2025-2026年八年级上学期期末道德与法治试题(试卷+解析).docx
- 江苏泰州市姜堰区2025-2026学年七年级上学期1月期末数学试题(试卷+解析).docx
- 江苏省扬州市邗江区2025-2026学年九年级上学期期末考试化学试题(试卷+解析).docx
- 江西上饶市铅山县2025-2026学年第一学期期末考试八年级数学试题(试卷+解析).docx
- 江苏扬州市高邮市2025-2026学年度第一学期期末学业质量监测试题九年级英语(试卷+解析).docx
最近下载
- 尼康Nikon COOLPIX 5700 Manual说明书用户手册.pdf VIP
- 《教你如何删除群里发的图片.doc VIP
- PMF720L微机线路保护测控装置技术及使用说明书(Ver1.2).pdf VIP
- 2026年中国离网光伏发电产业现状深度调研研究报告.docx
- 2025(人教版)数学六年级下册全册教学设计.docx
- API 682-2014 离心泵和转子泵用轴封系统 第四版(中文).pdf
- 华东师大版八年级数学上册《14.2.3容易误导读者的统计图》同步练习题及答案.docx VIP
- 《从零开始学低压电工技术》,张伯虎,高清版.pdf
- 2026京东智能产发股份有限公司招股说明书.pdf VIP
- 基于交通静化理论的威海市环海路部分路段的优化设计--本科生毕业论文(设计).doc VIP
原创力文档

文档评论(0)