写点什么

Android 题集四大组件之 Content provider、BroadcastReceiver

用户头像
Android架构
关注
发布于: 刚刚


  • 继承 BroadcastReceiver,重写 onReceive()方法。

  • 通过 Binder 机制向 ActivityManagerService 注册广播。

  • 通过 Binder 机制向 ActivityMangerService 发送广播。

  • ActivityManagerService 查找符合相应条件的广播(IntentFilter/Permission)的 BroadcastReceiver,将广播发送到 BroadcastReceiver 所在的消息队列中。

  • BroadcastReceiver 所在消息队列拿到此广播后,回调它的 onReceive()方法。



ContentProvider


=============================================================================


ContentProvider 主要用于不同应用程序之间实现数据共享的功能,其主要负责存储和共享数据。与文件存储、SharedPreferences 存储、SQLite 数据库存储这几种数据存储方法不同的是,后者保存下的数据只能被该应用程序使用,而前者可以让不同应用程序之间进行数据共享,它还可以选择只对哪一部分数据进行共享,从而保证程序中的隐私数据不会有泄漏风险。


ContentProvider 是如何实现数据共享的?




在 Android 中如果想将自己应用的数据(一般多为数据库中的数据)提供 给第三发应用,那么我们只能通过 ContentProvider 来实现。ContentProvider 是应用程序之间共享数据的接口。使用的时候首先自定义一个类继承 ContentProvider,然后覆写 query、insert、update、delete 等方法。因为其是四大组件之一因此必须在 AndroidManifest 文件中进行注册,把自己的数据通过 uri 的形式共享出去 。


ContentProvider、ContentResolver、ContentObserver 之间的关系?




《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
浏览器打开:qq.cn.hn/FTe 免费领取
复制代码


  • ContentProvider:管理数据,提供数据的增删改查操作,数据源可以是数据库、文件、XML、网络等,ContentProvider 为这些数据的访问提供了统一的接口,可以用来做进程间数据共享。

  • ContentResolver:ContentResolver 可以为不同 URI 操作不同的 ContentProvider 中的数据,外部进程可以通过 ContentResolver 与 ContentProvider 进行交互。

  • ContentObserver:观察 ContentProvider 中的数据变化,并将变化通知给外界。


Android题集四大组件




Android题集四大组件之Activity


Android题集四大组件之Service


Android题集四大组件之Content provider、BroadcastReceiver


喜欢本文的话,不妨顺手给我点个小赞、评论区留言或者转发支持一下呗??????~


点击【GitHub】还有彩蛋哦!!!



用户头像

Android架构

关注

还未添加个人签名 2021.10.31 加入

还未添加个人简介

评论

发布
暂无评论
Android题集四大组件之Content provider、BroadcastReceiver