目录
1.概念讲解
2.示例(访问手机通讯录)
1.概念讲解
(1)ContentProvider的概述:
当我们想允许自己的应用数据允许别的应用进行读取操作,我们可以让我们的App实现ContentProvider类,同时注册一个Uri,然后其他应用只要使用ContentResolver根据Uri就可以操作我们的App中的数据了!而数据库不一定是数据库,也可能是文件,xml,或者其他,但是SharePreference使用基于数据库模型的简单表格来提供其中的数据!
(2)ContentProvider的执行原理
(3)URI简介:
专业名词叫做:通用资源标识符,我们也可以类比为网页的域名,就是定位资源所在路径。例如:
Uri uri = Uri.parse(“content://com.andriod.contacts/raw_contacts”);
content:协议头,这是规定的,就像http,ftp等一样,而ContentProvider规定的是content开头的,接着是provider所在的全限定类名。
com.andriod.contacts代表资源部分,如果想访问com.andriod.contacts所有资源,后面就不用写了。
raw_contacts访问的是com.andriod.contacts资源中id为 raw_contacts的记录。
2.示例(访问手机通讯录)
(1)打开android studio新建一个项目,创建一个ContentProviderActivity.java文件和layout.xml文件,如图:
layout.xml文件
(2)写入两个按钮
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
andr