十六、Android四大组件_ContentProvider

ContentProvider是Android四大组件之一,用于实现应用间的数据共享。当一个应用需要访问另一个应用的数据库时,ContentProvider通过Uri提供了一个安全的接口。它包括ContentProvider类、ContentResolver、UriMatcher和ContentUris等组件,通过注册和操作Uri来实现数据的插入、删除、更新和查询。使用ContentProvider的步骤包括创建ContentProvider子类、在manifest.xml中注册、通过ContentResolver进行数据操作并注册监听器。

Android四大组件_ContentProvider

ContentProvider理解

1)为什么要有ContentProvider?
一个应用需要访问另外一个应用的数据库表数据,但一个应用的数据库文件是私有的,其他应用不能直接访问。
故Android提供了ContentProvider和ContentResolver来实现:通过ContentProvider将数据库表暴露给其他应用,其他应用通过ContentResolver去调用Provider暴露的接口(URI),以实现进程间的通讯。

2)ContentProvider是什么
ContentProvider:四大应用组件之一,通过Uri来进行交流
【Uri:统一资源标识符,根据这个Uri找到某个资源文件】

相关API

1)ContentProvider:内容提供者类
onCreate()\query()\Insert()\delete()\update()

2)ContentResolver:内容解析类
getContentResolver()\Insert()\delete()\update()\query();
registerContentObserver()\unregisterCOntentObserver()\notifyChange();

3)Uri:包含一个具有一定格式的字符串所对应资源的类
parse();

4)UriMatcher:用于识别Uri的一个Uri容器
void addURI(String authority,String path,int code); 添加一个合法的URI
int match(Uri uri); 匹配指定的Uri,返回匹配码

5)ContentUris:操作Uri的工具类
long parseId(Uri contentUri); 解析Uri,得到其中的id
Uri withAppendedId(Uri contentUri, long id); 添加id到指定的Uri中

使用ContentProvider步骤

1.编写ContentProvider子类
class StudentContentProvider extends ContentProvider {
//实现inert、delete、update和query等方法
}

2.在manifest.xml中注册

Exported属性指定是否可以让其他应用访问

3.得到其对象
context.getContentResolver()

4.使用其对象
inert()、delete()、update()和query() 系统自动找到匹配的ContentProvider对象来操作数据
registerContentObserver(Uri uri, boolean notify,ContentObserver observer)注册uri的监听
unregisterContentObserver(ContentObserver observer)解注册uri的监听
notifyChange(Uri uri, ContentObserver observer)通知监听器

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值