Android——ContentProvider学习记录

ContentProvider应用场景/概念

当我们想允许自己应用的数据允许别的应用进行读取操作,可以让App实现ContentProvider类,同时注册一个uri,然后其他应用只要使用 ContentProvider根据uri就可以操作我们App中的数据了。

URI和URL的联系与区别

  • URI是统一资源标识符,URL是URI的子集,是资源定位符
  • URI就是在某一规则下能把一个资源独一无二地标识出来。
    拿人做例子,身份证号就是URI,通过身份证号我们可以唯一的确定一个人。
  • 如果按位置来定位,比如,住址://地球/中国/湖北省/武汉市/武汉大学/xx学部/xx寝室/张三,这个字符串同样标识出了唯一的一个人,起到了URI的作用,所以URL是URI的子集,URL就是用定位的方式实现的URI。
  • 回到Web上,假设所有的html文档都有唯一的编号,记作html:xxxxx,xxxxx是一串数字,即html文档的身份证号码,这个能唯一标识一个html文档,那么这个号码就是一个URI。而URL则通过描述是哪个主机上哪个路径上的文件来唯一确定一个资源,也就是定位的方式来实现的URI,比如说现在的网址就是一种URL。

ContentProvider流程解析

ContentProvider是应用程序之间共享数据的接口。 使用的时候首先自定义一个类继承ContentProvider, 然后重写
query、 insert、 update、 delete等方法

在这里插入图片描述

为什么要用ContentProvider? 它和SQL的实现上有什么差别?

ContentProvider屏蔽了数据存储的细节,内部实现对用户完全透明,用户只需要关心操作数据的URI就可以了,
ContentProvider可以实现不同App之间共享。
SQL也有增删改查的方法, 但是SQL只能查询本应用下的数据库。 而ContentProvider 还可以去增删改查本地文件xml文件的读取等。

ContentProvider、 ContentResolver、 ContentObserver之间的关系

  • ContentProvider 内容提供者, 用于对外提供数据
  • ContentResolver 内容解析者, 用于获取内容提供者提供的数据
  • ContentObserver 内容监听器, 可以监听数据的改变状态
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值