十六、Android四大组件_ContentProvider

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)通知监听器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值