8.4 ContentProvider

简介:内容提供者,通过暴露数据供其他应用进行读取,数据来源可以是数据库、文件、xml等;

            (ContentProvider是以类似数据库中表的方式将数据暴露的)

8.4 ContentProvider_第1张图片
执行原理

URL:统一资源定位符,常说的网址,采用统一格式来描述各种资源信息(文件、服务器地址、目录等);

URN:统一资源名称,是url的更新形式,不依赖位置,有可能减少失效连接数;

URI:统一资源标识符,一种资源定位机制(或命名标识机制)格式:[scheme:] scheme-specific-part,url与urn都是uri的子集;



使用系统提供的ContentProvider

不同版本可能对应不同的URL,获取URL与对应的数据库表的字段:

①来到系统源码文件下:all-src.rar -> TeleponeProvider -> AndroidManifest.xml查找对应API

②打开模拟器的file exploer/data/data/com.android.providers.contacts/databases/contact2.db 导出后使用SQLite图形工具查看表数据

例1:读取短信

8.4 ContentProvider_第2张图片
读取短信

注:从5.0开始,默认短信应用外的软件不能以写入短信数据库的形式发短信。这里只做插入数据的例子来看

8.4 ContentProvider_第3张图片
插入短信

例2:读取手机联系人

8.4 ContentProvider_第4张图片
读取联系人
8.4 ContentProvider_第5张图片
根据手机号查找姓名
8.4 ContentProvider_第6张图片
插入联系人

自定义ContentProvider

8.4 ContentProvider_第7张图片
流程

案例:B项目插入数据到A项目

8.4 ContentProvider_第8张图片
创建数据库
8.4 ContentProvider_第9张图片
继承ContentProdiver
8.4 ContentProvider_第10张图片
清单文件配置
8.4 ContentProvider_第11张图片
B项目中使用ContentResolver操作A

监听ContentProvider的数据变化

8.4 ContentProvider_第12张图片
监听ContentProvider

你可能感兴趣的:(8.4 ContentProvider)