ContentProvider使用方法详解

2018-01-12 10:37:07 浏览数 (1)

是四大组件之一,其本质上是一个标准化的数据管道,它屏蔽了底层的数据管理和服务等细节,以标准化的方式在 应用间共享数据。用户可以灵活实现所封装的数据存储以及增删改查等,所有的 必须实现一个对外统一的接口。

本篇文章主要介绍 开发中的部分知识点,通过阅读本篇文章,您将收获以下内容:

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

至此,本篇已结束,如有不对的地方,欢迎您的建议与指正。期待您的关注,

感谢您的阅读,谢谢!

0 人点赞