是四大组件之一,其本质上是一个标准化的数据管道,它屏蔽了底层的数据管理和服务等细节,以标准化的方式在 应用间共享数据。用户可以灵活实现所封装的数据存储以及增删改查等,所有的 必须实现一个对外统一的接口。
本篇文章主要介绍 开发中的部分知识点,通过阅读本篇文章,您将收获以下内容:
ContentProvider
获取联系人信息的方法
获取短信内容的方法
ContentResolver 内容解析者
ContentObserver 内容观察者
ContentProvider ContentResolver ContentObserver 三者关系
我们不是牛逼的程序员,我们只是程序开发中的垫脚石。
我们不发送红包,我们只是红包的搬运工。
1. ContentProvider 实现ContentProvider 继承关系
四大组件之一,必须在Androidmainfest.xml 中注册
注意 : URI 中的元素
android:authorities="ProgramAndroid"
继承 ContentProvider 实现增删改查等方法
提供对外提供操作的数据库方法
其他APK 访问此ContentProvider 数据库的方法
注意 :
// 此条添加上才ContentObserver可以监听数据库改变
getContentResolver().notifyChange(Uri.parse(uri),null);
至此,自定义的使用方法已经实现。
2. 获取联系人信息的方法
系统自带一下 ,比如 联系人
例如: 源码 下的内容
Android 系统Provider.png
本段主要实现获取系统联系人(ContactProvider)提供的一些信息
获取联系人实现方法
ListView 显示布局如下
item 布局如下:
注意: 获取联系人需要权限
至此,已经可以获取并显示联系人信息。
3.获取短信内容的方法
短信内容数据也是系统提供的,获取方法如下:
获取方法如下
ListView 布局如下
item 布局如下:
4. ContentResolver 内容解析者
主要是通过调用获取 提供的数据接口,进而进行增删改查等操作。
5.ContentObserver 内容观察者
内容观察者通过指定 监听数据是否改变。
自定义 ContentObserver 内容观察者
1.注册ContentObserver 内容观察者 registerContentObserver
2.继承 ContentObserver 实现 onChange方法
注意 :
// 此条添加上才ContentObserver可以监听数据库改变
getContentResolver().notifyChange(Uri.parse(uri),null);
至此自定义内容观察者已经实现完成
调用ContentObserver 监听短信数据改变
6. ContentProvider ContentResolver ContentObserver 三者关系
三者关系图如下
关系图.png
至此,本篇已结束,如有不对的地方,欢迎您的建议与指正。期待您的关注,
感谢您的阅读,谢谢!