Android语言基础教程(197)Android ContentProvider实现数据共享概述之URI的用法:Android数据共享秘辛:URI如何玩转应用间通信?

你以为数据共享只能靠Intent?ContentProvider笑而不语,而URI才是真正的通关密码。


01 快递公司与收货地址:ContentProvider与URI的奇妙比喻

在Android王国里,每个应用都是一个独立的城堡,城堡之间想要传递货物,不能随便翻墙,必须通过官方认证的“快递公司”——ContentProvider。

那么问题来了,快递员怎么知道把包裹送到哪里呢?这就需要“收货地址”——URI(Uniform Resource Identifier,统一资源标识符)。

URI是ContentProvider的灵魂,它唯一标识了ContentProvider中的数据集。没有URI,数据共享就像没有地址的快递,永远找不到目的地

来看看URI的神秘结构吧:

content://cn.itcast.provider.personprovider/person/10

这个URI就像是一个分层地址:content://是Android规定的协议头,表示这个资源由ContentProvider管理。

cn.itcast.provider.personprovider是授权(authority)部分,它是ContentProvider的唯一身份证,一般用ContentProvider所在package的完全限定名称。

person/10是路径(path)部分,指向具体的资源——可能是数据库中的表,甚至是表中的特定记录。

02 URI的深度解析:不只是“地址”那么简单

URI在Android数据共享中扮演着路由导航的角色,它告诉系统:“我要找的是这个ContentProvider,那张表,那条记录。”

URI的标准化结构

一个标准的URI包含几个关键部分:

  • Scheme:永远是content://,这是Android的约定
  • Authority:ContentProvider的唯一标识,在AndroidManifest.xml中注册时指定
  • Path:资源路径,可以指向表或记录
  • Id:可选部分,表示特定记录的ID

通配符:让URI更灵活

URI还支持通配符,让数据操作更加灵活:

  • *:匹配任意长度的任何有效字符的字符串
  • #:匹配任意长度的数字字符的字符串

例如,content://com.example.app.provider/*匹配该provider的任何内容,而content://com.example.app.provider/table/#匹配table表的所有行。

MIME类型:URI的“身份证”

除了URI本身,ContentProvider还会为每个

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

值引力

持续创作,多谢支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值