前面讲了Android中URI含义和基本用途,这里主要将的是URI的命名方式。

     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后缀匹配:

content://contacts/people/1
上面是返回一个人员
content://contacts/people/1/phone/3
返回一个电话号码。
而且我们要为不同的数据类型设置不同的MIME类型,第一个MIME类型是:vnd.android.cursor.item/person第二个MIME类型是:vnd.android.cursor.item/phone。
同时ContentProvider不仅可以返回单条数据,也可能以目录的形式返回多条数据。以上面2个URI来说,后缀的结尾都是数字,这表示查询对应某条记录,所以返回的数据是单条的,而如果是查询目录的形式就要去掉后面的数字如:
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. 阿里技术沙龙第17期·杭州站-无线技术专场 记录
  2. Android的种类与应用
  3. Android创建和使用数据库SQLIte
  4. 基于xmpp openfire smack开发之Android客户端开发[3]
  5. Android---45---使用AIDL Service传递复杂数据
  6. [Android]使用静态变量传递数据
  7. ContentProvider与ContentResolver实现数据共享
  8. Android入门进阶教程(14)-Binder进程通信介绍
  9. 40个Android面试题

随机推荐

  1. 使用风格化Android的GridView元素背景
  2. 在Android上有类似于session的东西,叫做Ap
  3. Android 4.4 KitKat 新特性
  4. Python3原生编写月份计算工具
  5. 万字长文带你了解最常用的开源 Squid 代
  6. Android 离线log 保存工具类
  7. Android创建桌面快捷方式几种方法
  8. Android(安卓)ListView getView多次不规
  9. Android系统服务详解-android学习之旅(95)
  10. “罗永浩抖音首秀”销售数据的可视化大屏