Android的ContentProvider之一 功能、Uri用法、ContentResolver

ContentProvider是不同应用之间数据交换的标准API
作为四大应用组件之一,ContentProvider也需要在AndroidManifest.xml文件中进行配置
当应用程序通过ContentProvider 暴露自己的数据操作接口之后,不管该APP是否启动,其他程序都可以操作该APP的内部数据


数据共享标准ContentProvider
ContentProvider以某种Uri的形式对外提供数据,允许其他应用访问或修改数据;
其他应用使用ContentResolver根据Uri去访问操作指定数据
向Android系统中注册ContentProvider只要在<application.../>元素下添加如下子元素即可(需要为其绑定一个Uri)
<provider android:name=“.DictProvider"
        android:authorities=com.example.providers.dictprovider"
        android:exported=true/>
(第三个属性指定是否允许其他应用调用)
这样注册之后,其他应用就可通过该Uri来访问DictProvider所暴露的数据了
public boolean onCreate()

public Uri insert(Uri uri, ContentValues values)
根据该Uri插入values对应的数据
public int delete(Uri uri, String selection, String[] selectionArgs)
根据Uri删除select条件所匹配的全部记录
public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs, String sortOrder)
根据Uri修改select条件所匹配的全部记录
public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder)
根据Uri查询出select条件所匹配的全部记录,其中projection就是一个列名列表,表明只选择出指定的数据列
public String getType(Uri uri)
返回当前Uri所代表的数据的MIME类型。多条记录,MIME以vnd.android.cursor.dir/开头;单条记录,则以vnd.android.cursor.item/开头

Uri
content://com.example.provider.dictprovider/word/2/item
协议      |       authority                 | 资源部分(数据部分)
为了将一个字符串转换成Uri,Uri工具类提供了parse()静态方法,例如如下代码即可将字符串转换为Uri:
Uri uri = Uri.parse( content://com.example.provider.dictprovider/word/2/item ");

使用ContentResolver操作数据
获取CR的方法为getContentResolver(),获取CR对象之后就可以调用ContentResolver的如下方法来操作数据了
insert(Uri uri, ContentValues values)
向Uri对应的ContentProvider中插入values对应的数据
delete(Uri uri, String where, String[] selectionArgs)
删除Uri对应的ContentProvider中where提交匹配的数据
update(Uri uri, ContentValues values, String where, String[] selectionArgs)
更新Uri对应的ContentProvider中where提交匹配的数据
query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder)
查询Uri对应的ContentProvider中where提交的匹配数据
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值