ContentProvider 详解
2020-11-02 本文已影响0人
钱晓缺
为什么要设计ContentProvider
1.封装数据,提供统一接口,当项目需求需要修改数据源的时候,节省时间和人力
2.提供一种跨进程数据共享的方式
3.数据更新通知机制。
基本用法
第一种:使用现有的contentProvider
第二种:使用自定义contentProvider
获取contentProvider内容基本步骤:
得到contentResolver类对象:ContentResolver cr = getContentResolver()
定义要查询的字段String数组
使用cr.Query方法得到一个cursor对象
用while循环得出cursoe里面的内容
如何共享数据
1.继承类contentProvider,重写query,insert,update,delete方法。
2.将数据用uri方式共享
和SQL区别
contentProvider屏幕了数据存储的细节,内部实现对用户透明,用户只需要关心操作数据的uri就行了
contentProvider可以实现不同APP之间共享数据,还可以增删改查本地文件和XML文件
SQL只能增删改查本应用下的数据