android之Content Providers

简述

Provider 和Resolver是一对组合,它实现的基础是数据库,数据库是私用的,为了程序之间,或者进程间共享数据,需要一套机制把数据库的数据共享出来,ContentProver和ContentResolver应势而生,数据的管理交给数据库,它只解决进程或者是应用程序间共享访问需要解决的问题。

它是服务/客户端的模式,ContentResolver运行在客户端中,像一个代理,负责与运行Provider的进程沟通。

数据的存储

虽然ContentProvider把数据的管理交给了数据库,但是我们还是要知道数据的结构是什么样的,ContentProvider的底层数据呈现出表格的结构,一行是一条数据,一行数据分成多个段,每一段都是数据的一个属性。虽然Provider的数据_ID不是必须的,但是要和ListView绑定必须要有_ID。

访问ContentProvider

前面也说过ContentProvider和ContentResolver是一套工具,其实这套工具也是Activity的一部分,我们可以直接在Activity的代码中调用getContentResolver()来取得这套工具。

public ContentResolver getContentResolver ()
getContentResolver返回的对象就是ContentResolver,查询的时候调用ContentResolver的query函数,ContentResolver调用ContentProvider的query函数,剩下的事情就是ContentProvider与数据库的事,我们不用管了,结果肯定是要返回过来的。我们直接用就行。

query的参数和数据库的select的差别很相似,基本是一一对应的。比如query的第一个参数需要一个Uri,这个参数相当于SELECT的database name.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值