2023学年完整公开课版ContentProvider的介绍v_第1页
2023学年完整公开课版ContentProvider的介绍v_第2页
2023学年完整公开课版ContentProvider的介绍v_第3页
2023学年完整公开课版ContentProvider的介绍v_第4页
2023学年完整公开课版ContentProvider的介绍v_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

北京电子科技职业学院移动应用软件开发(基于Android平台)01ContentProvider介绍

ContentProvider简介

ContentProvider(内容提供者)是Android中的四大组件之一。主要用于对外共享数据,也就是通过ContentProvider把应用中的数据共享给其他应用访问,其他应用可以通过ContentProvider对指定应用中的数据进行操作。ContentProvider分为系统的和自定义的,系统的例如:联系人,图片等数据。

ContentProvider简介

(1)android平台提供了ContentProvider使一个应用程序的指定数据集提供给其他应用程序。其他应用可以通过ContentResolver类从该内容提供者中获取或存入数据。(2)只有需要在多个应用程序间共享数据是才需要内容提供者。例如,通讯录数据被多个应用程序使用,且必须存储在一个内容提供者中。它的好处是统一数据访问方式。(3)ContentProvider实现数据共享。ContentProvider用于保存和获取数据,并使其对所有应用程序可见。这是不同应用程序间共享数据的唯一方式,因为android没有提供所有应用共同访问的公共存储区。(4)开发人员不会直接使用ContentProvider类的对象,大多数是通过ContentResolver对象实现对ContentProvider的操作。(5)ContentProvider使用URI来唯一标识其数据集,这里的URI以content://作为前缀,表示该数据由ContentProvider来管理。

数据模型ContentProvider使用基于数据库模型的简单表格来提供其中的数据,这里每行代表一条记录,每列代表特定类型和含义的数据。例如,联系人的信息可能以如下方式提供:

ContentProvider重要方法public

boolean

onCreate()

在创建ContentProvider时调用

public

Cursor

query(Uri,

String[],

String,

String[],

String)

用于查询指定Uri的ContentProvider,返回一个Cursor

public

Uri

insert(Uri,

ContentValues)

用于添加数据到指定Uri的ContentProvider中

public

int

update(Uri,

ContentValues,

String,

String[])

用于更新指定Uri的ContentProvider中的数据

public

int

delete(Uri,

String,

String[])

用于从指定Uri的ContentProvider中删除数据

public

String

getType(Uri)

用于返回指定的Uri中的数据的MIME类型

如果操作的数据属于集合类型,那么MIME类型字符串应该以vnd.android.cursor.dir/开头如果要操作的数据属于非集合类型数据,那么MIME类型字符串应该以vnd.android.cursor.item/开头。ContentResolver当外部应用需要对ContentProvider中的数据进行添加、删除、修改和查询操作时,可以使用ContentResolver类来完成,要获取ContentResolver对象,可以使用Context提供的getContentResolver()方法。ContentResolver

cr

=

getContentResolver();

ContentResolver提供的方法和ContentProvider提供的方法对应的有以下几个方法:

public

Uri

insert(Uri

uri,

ContentValues

values)

用于添加数据到指定Uri的ContentProvider中。

public

int

delete(Uri

uri,

String

selection,

String[]

selectionArgs)

用于从指定Uri的ContentProvider中删除数据。

public

int

update(Uri

uri,

ContentValues

values,

String

selection,

String[]

selectionArgs)

用于更新指定Uri的ContentProvider中的数据。

public

Cursor

query(Uri

uri,

String[]

projection,

String

selection,

String[]

selectionArgs,

String

sortOrder)

用于查询指定Uri的ContentProvider。

URI的用法每个ContentProvider提供公共的URI(使用Uri类包装)来唯一标识其数据集。管理多个数据集(多个表格)的ContentProvider为每个都提供了单独的URI。所有为provider提供的URI都以“content://”作为前缀,“content://”模式表示数据由ContentProvider来管理。A部分是"content://"。可以看作是网址中的"http://"。

B部分是主机名或authority,用于唯一标识这个ContentProvider,外部应用需要根据这个标识来找到它。可以看作是网址中

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论