在Android中,为了使用数据集中管理模式,使用了ContentProvider来进行数据管理,在使用ContentProvider进行 数据交互时就需要用到URI。为了让客户端程序能够使用你的数据,你必须要定义一个公开的URI,它由一些固定格式的文字组成,可以分成下面几个部分:

content://

一个标准的URI前缀,它用来指示Android必须从ContentProvider中挑出一个来处理这个URI。

authority

一个唯一的标识符,标示这个URI需要查找的ContentProvider是由哪个组织开发的,一般用跟java包命名规范相似的方式来署名这个 开发组织。如果是Android内置的provider,则这个authority可以省略掉,否则authority是必须的,Google建议使用用 户自定义的继承ContentProvider的类的全名来作为,这个ContentProvider所要处理的URI的authority

path(路径)

ContentProvider根据这个路径信息来判断要返回什么类型的数据,所以这个后缀路径可以自由定义,但是有一些条件限制:货运专家

如果一个ContentProvider能查询返回很多种不同类型的数据,URI后缀要设置不同类型的数据所对应不同的URI后缀如内置的 Contact ContentProvider就是用来处理名片夹,它可以返回很多种类型的数据:联系人、电话、联系方式等。所以对应这些不同类型的数据就有不同的 URI后缀匹配:

1 content://contacts/people/1

上面是返回一个人员

1 content://contacts/people/1/phone/3

返回一个电话号码。

而且我们要为不同的数据类型设置不同的MIME类型,第一个MIME类型是:vnd.android.cursor.item/person第二个MIME类型是:vnd.android.cursor.item/phone。

同时ContentProvider不仅可以返回单条数据,也可能以目录的形式返回多条数据。以上面2个URI来说,后缀的结尾都是数字,这表示查询对应某条记录,所以返回的数据是单条的,而如果是查询目录的形式就要去掉后面的数字如:软件开发

1 2 content://contacts/people/1/phone content://contacts/people

上面就是目录形式,对应他们的MIME类型也不同,所以我们将单条的MIME类型中的item改为dir,所以MIME类型是:vnd.android.cursor.dir/phone和vnd.android.cursor.dir/person。


A: 标准前缀,表达的意思是使用ContentProvider来处理信息。

B: authority

C: 后缀1,一般用来表示请求需要获取的是哪种类型的数据(确定MIME类型的功能)。

D:定位记录。确定对应类型的数据中的哪条记录。

更多相关文章

  1. Android联系人数据库全解析(1)
  2. Android个人笔记 - Google Android揭秘_第一章
  3. Android架构组件Room的使用
  4. android: 横竖屏切换总结-布局改变和数据保存
  5. 【Android】SQLite数据库基本用法详解(极简洁)
  6. Android(安卓)下使用 JSON 实现 HTTP 请求,外加几个示例!
  7. Android(安卓)widget之ListView
  8. Android中的adapter
  9. mybatisplus的坑 insert标签insert into select无参数问题的解决

随机推荐

  1. 封装Android OKHttp3.0请求工具
  2. android 7.0 使用apktool反编译apk
  3. 基于Android的短信管理系统
  4. Android 1.5 自带的图标一览表
  5. Android ContextMenu上下文菜单
  6. Android那些“没用“知识(一)
  7. Android 定时到服务器取数据并刷新
  8. Android 面试:常见问题总结
  9. android时间控件DatePicker使用实例
  10. android 水平进度对话框