8.4 ContentProvider

简介:内容提供者,通过暴露数据供其他应用进行读取,数据来源可以是数据库、文件、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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容