您的位置:首页 > 移动开发 > Android开发

Android四大组件之ContentProvider简介

2017-07-23 16:10 465 查看

一、什么是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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android ContentProvider