Android四大组件之ContentProvider简介

一、什么是ContentProvider

       ContentProvider是所有应用程序之间数据存储和检索的桥梁,它的作用就是使得这个应用程序之间实现数据共享。在Android当中,ContentProvider是一中特殊的存储数据的类型,它提供一套标准的接口用来获取数据、操作数据。

二、ContentProvider的作用

       显然,ContentProvider是用于不同程序之间共享数据的,它提供一套标准的接口用来获取数据、操作数据。

         需要注意的是要在配置文件当中添加相应的权限。

三、实现数据共享的相关类、接口与权限

1、ContentProvider

       一个程序可以通过实现一个ContentProvider的抽象方法接口将自己的数据暴露出去,外部程序可以通过一个标准的接口来和程序内的数据打交道。因此自定义一个ContentProvider类必须实现几个抽象方法接口。这些常用抽象方法如下表:

方法

描述

query(Uri uri,String[] projection,String selection,String[] selectionArgs,String sortOrder)

通过URI进行查询,返回一个Cursor对象

insert(Uri uri,ContentValues values)

将一组数据插入到URI指定的地方

delete(Uri uri,String where,String[] selectionArgs)

删除指定URI并且符合一定条件的数据

update(Uri uri,ContentValues values,String where,String[] selectionArgs)

更新URI指定位置并且符合一定条件的数据

getType(Uri uri)

获得MIME数据类型

onCreate()

当ContentProvider创建时调用

getContext()

获得Context对象

在上述方法当中使用最多的是query方法,下面对其参数进行说明。

(1)Uri为指定的URI地址。

(2)projection为指定的返回列名。

(3)selection用于指定返回的行,相当于SQL语句中的WHERE条件子句。

(4)selectionArgs对参数selection中出现的“?”进行替换。

(5)sortOrder指定返回结果的排序方式。

2、ContentResolve

       当外部应用程序需要对ContentProvider中的数据进行添加、删除、修改和查询操作,可以使用ContentResolve接口来完成,在Activity中通过getContentResolve()方法获取ContentResolve对象。ContentResolve提供的抽象方法与ContentProvider需要实现的方法对应,同样使用query()、insert()、delete()、update()等方法来操作数据,这些方法的名称和参数和ContentProvider中的一样。

       一般情况下,ContentProvider是单实例的,但是可以有多个ContentResolve在不同的应用程序和不同的进程之间和ContentProvider进行交互。

3、URI

       URI是只想数据的一个资源标识符。通过URI使得ContentResolve知道与哪一个ContentProvider对应,并且来操作哪些数据。

 

 ContentProvider简单应用案例下载:点击打开链接

 

 

参考文献:

1、张冬玲,杨宁. Android应用开发教程:清华大学出版社,2013年4月第1版:207-211

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值