WEB开发网
开发学院手机开发Android 开发 Android开发中的ContentProvider数据模型概述 阅读

Android开发中的ContentProvider数据模型概述

 2010-08-20 02:10:00 来源:WEB开发网   
核心提示:转自:http://blog.csdn.net/sdhjob/archive/2009/12/18/5031484.aspxAndroid 开发中的ContentProvider数据模型概述:在Android开发中我们经常要对数据进行很多操作,在Android平台有很多自带的数据源,Android开发中的Content

转自:http://blog.csdn.net/sdhjob/archive/2009/12/18/5031484.aspx

Android 开发中的ContentProvider数据模型概述:在Android开发中我们经常要对数据进行很多操作,在Android平台有很多自带的数据源,统称ContentProvider 以下文章主要讲解ContentProvider在Android开发中的定位及应用。

Android的数据(包括files, database等...)都是属于应用程序自身,其他程序无法直接进行操作。

因此,为了使其他程序能够操作数据,在Android中,可以通过做成 ContentProvider提供数据操作的接口。其实对应用而言,也可以将底层数据封装成ContentProvider,这样可以有效的屏蔽底层操作的细节,并且是程序保持良好的扩展性和开放性。

ContentProvider,顾名思义,就是数据内容的供应者。在Android中它是一个数据源,屏蔽了具体底层数据源的细节,在 ContentProvider内部你可以用Android支持的任何手段进行数据的存储和操作,可能比较常用的方式是基于Android的SQLite 数据库(恩,文档中和示例代码都是以此为例)。无论如何,ContentProvider是一个重要的数据源,可以预见无论是使用和定制ContentProvider都会很多。于是花了点时间仔细看了看。

数据库操作

从我目前掌握的知识来看,SQLite比较轻量(没有存储过程之类的繁杂手段),用起来也比较简单。实例化一个 SQLiteDatabase类对象,通过它的APIs可以搞定大部分的操作。从sample中看,Android中对db的使用有一种比较简单的模式,即派生一个 ContentProviderDatabaseHelper类来进行SQLiteDatabase对象实例的获取工作。基本上, ContentProviderDatabaseHelper类扮演了一个singleton的角色,提供单一的实例化入口点,并屏蔽了数据库创建、打开升级等细节。在ContentProvider中只需要调用ContentProviderDatabaseHelper的openDatabase方法获取SQLiteDatabase的实例就好,而不需要进行数据库状态的判断。

URI

像进行数据库操作需要用SQL一样,对ContentProivder进行增删改查等操作都是通过一种特定模式的URI来进行的

(ig:content: //provider/item/id),URI的能力与URL类似,具体细节可以查看SDK。建立自己的ContentProvider,只需要派生 ContentProivder类并实现insert, delete, update等抽象函数即可。

在这些接口中比较特殊的是getType(uri)。根据传入的uri,该方法按照MIME格式返回一个字符串唯一标识该uri的类型。所谓uri

1 2 3  下一页

Tags:Android 开发 ContentProvider

编辑录入:coldstar [复制链接] [打 印]
赞助商链接