当我们想要访问某个网址时,我们要在浏览器输入如下地址:
http://www.crazyit.org/ethos.php
上面那个地址可以分为如下三个部分:
ContentProvider要求的Uri与此类似,例如如下Uri:
content://org.crazyit.providers.dictprovider/words
它也可以分为如下三个部分:
http://
一样,暴露ContentProvider、访问ContentProvider的协议默认是content://
需要指出的是,Android的Uri所能表达的功能更丰富,它还支持如下的Uri:
content://org.crazyit.providers.dictprovider/words/2
此时它要访问的资源为man/2,这就意味着访问man数据中id为2的记录
还有如下形式:
content://org.crazyit.providers.dictprovider/words/2/words
此时它要访问的资源为man/2/man,这意味着访问man数据中ID为2的记录的man字段。
如果要访问全部数据,即可使用下面所示的形式:
content://org.crazyit.providers.dictprovider/words
虽然大部分使用ContentProvider所操作的数据都来自于数据库,但有时这些数据也可来自于文件、XML或者网络等其他存储方式,此时支持的Uri也可以改为如下形式:
content://org.crazyit.providers.dictprovider/words/detail/
上面的Uri表示操作word节点下的detail节点
为了将一个字符串转换成Uri,Uri工具类提供了parse()静态方法,例如下面代码即可将字符串转换为Uri:
Uri uri = Uri.parse("content://org.crazyit.providers.dictprovider/words/2");