《老罗的Android之旅》阅读笔记——Content Provider


Content Provider应用程序组件是:结合文件权限机制,有保护地开放自己的数据给其它应用程序使用。

基于Content Provider设计App的框架图如下:

Content Provider 展示了Binder进程间通信机制(文件权限)和匿名共享内存机制(大量的数据)完美结合。


  • Content Provider实例启动过程

懒加载的机制:第一次要使用这个Content Provider的时候,系统才会把它加载到内存中来

ArticlesProvider的完整启动过程序列图:


  • 数据共享原理

CursorWindow对象:

它在内部创建了一块匿名共享内存,

它实现了Parcel接口,因此它可以在进程间传输

数据共享原理序列图


  • 数据更新通知机制

Content Provider中的数据监控机制与Android系统中的广播机制三个主要的区别:

一是前者是通过URI来把通知的发送者和接收者关联在一起的,而后者是通过Intent来关联的,

二是前者的通知注册中心是由ContentService服务来扮演的,而后者是由ActivityManagerService服务来扮演的,

三是前者负责接收数据更新通知的类必须要继承ContentObserver类,而后者要继承BroadcastReceiver类。

差异的原因:Content Proivder组件的数据共享功能本身就是建立在URI的基础之上的


Content Provider的数据更新机制划分为三个单元分析:

第一个单元是ContentService的启动过程,

第二个单元是监控数据变化的ContentObserver的注册过程,

第三个单元是数据更新通知的发送过程。


注册ArticleObserver来监控ActiclesProvider中的数据变化的过程序列图:

数据变化通知的发送过程序列图:



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值