在介绍Android系统的Uri之前,我们先看一个互联网的URL,例如你想访问csdn的博客专栏,应该在浏览器中输入如下的Uri:
对于上面这个URL,我们可以看做三个部分。
- http://:URL的协议部分,只要通过HTTP协议来访问网站,这个部分是固定的。
- write.blog.csdn.net:网站域名部分。只要访问指定的网站,这个部分是固定的。
- postedit:网站资源部分。当访问者需要访问不同的资源时候,这个部分是动态变化的。
Android的Uri与此累世,例如如下Uri:
content://com.fx.ccme/people
它也可以分为三个部分。
- content://:这个部分是Android所规定的,是固定的。
- com.fx.ccme:这个部分就是ContentProvider的authority。系统就是由这个部分来找到操作哪个ContentProvider。只要是访问指定的ContentProvider,这个部分是固定的。
- people:资源部分(或者是数据部分),当访问者需要访问不同的资源时,这个部分是动态改变的。
这上面所讲的只是基本的Uri,其实Android的Uri表达的功能可以更丰富,它还可以支持如下的Uri:
(1) content://com.fx.ccme/people/1
此时它要访问的资源为people/1,这意味访问people数据中ID为1的记录。
(2)content://com.fx.ccme/people/1/name
此时它要访问的资源为people/1,这意味着访问people数据中ID为1的记录的name字段。
(3)content://com.fx.ccme/people
此时它要访问的资源为people所有的数据。
虽然大部分使用ContentProvider所操作的数据都是来自于数据库,但是有时候这些数据也可以来自于文件、 XML或者网络等其他存储方式,
此时支持的Uri也可以改为如下形式:
content://com.fx.ccme/people/detail/
上面的Uri表示操作People节点下的detail节点。
为了将一个字符串转化成Uri,Android提供的Uri工具类提供了parse()静态方法,如下代码可以将字符串转换为 Uri:
Uri uri = Uri.parse("content://com.fx.ccme/people/1/name");
以上只是我个人在学习过程中的理解,其实我也是一个刚刚接触Android,写博客这是为了做一下笔记,记录我学 习成长的过程,希望能对大家有所帮助!
Android中的ContentProvider的Uri的简介
最新推荐文章于 2022-12-25 17:00:00 发布