8.4 ContentProvider

2018-07-18  本文已影响0人  jadefly

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

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

执行原理

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:读取短信

读取短信

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

插入短信

例2:读取手机联系人

读取联系人 根据手机号查找姓名 插入联系人

自定义ContentProvider

流程

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

创建数据库 继承ContentProdiver 清单文件配置 B项目中使用ContentResolver操作A

监听ContentProvider的数据变化

监听ContentProvider
上一篇下一篇

猜你喜欢

热点阅读