总结提高,与君共勉
1、什么是Content Provider
内容提供器( Content Provider)主要用于在不同的应用程序之间实现数据共享的功能,提供了一套完整的机制,允许一个程序访问另一个程序中的数据,同时还能保证被访数据安全性。目前,使用内容提供器是 Android 实现跨程序共享数据的标准方式。
对数据使用者来说它是数据提供者。它提供统一的接口对数据进行操作,使用者不用关心数据到底是如何存储的以及数据类型到底是什么。也就是说,Content Provider作为数据提供者,提供了对外共享本地数据一种机制,使Android应用能方便地基于该机制进行数据访问。为了便于管理和访问,每个Content Provider必须有唯一标示,用Uri表示。Uri类似http url, 构成如下:content://authority/path
2、Content Provider与ContentResolver
内容提供者将一些特定的应用程序数据供给其它应用程序使用。数据可以存储于文件系统、SQLite数据库或其它方式。内容提供者继承于ContentProvider 基类,为其它应用程序取用和存储它管理的数据实现了一套标准方法。然而,应用程序并不直接调用这些方法,而是使用一个 ContentResolver 对象,调用它的方法作为替代。ContentResolver可以与任意内容提供者进行会话,与其合作来对所有相关交互通讯进行管理。
【Content Provider】提供如下函数
一个Content Provider类实现了一组标准的方法接口,从而能够让其他的应用保存或读取此Content Provider的各种数据类型。也就是说,一个程序可以通过实现一个Content Provider的抽象接口将自己的数据暴露出去。
• query(Uri uri, String[] projection, String selection, String[] selectionArgs,String sortOrder):通过Uri进行查询,返回一个Cursor。
• insert(Uri url, ContentValues values):将一组数据插入到Uri 指定的地方。
• update(Uri uri, ContentValues values, String where, String[] selectionArgs):更新Uri指定位置的数据。
• delete(Uri url, String where, String[] selectionArgs):删除指定Uri并且符合一定条件的数据。
【ContentResolver】提供如下函数
外界的程序通过ContentResolver接口可以访问ContentProvider提供的数据,在Activity当中通过getContentResolver()可以得到当前应用的 ContentResolver实例。
ContentResolver提供的接口和ContentProvider中需要实现的接口对应,主要有以下几个。
• query(Uri uri, String[] projection, String selection, String[] selectionArgs,String sortOrder):通过Uri进行查询,返回一个Cursor。
• insert(Uri url, ContentValues values):将一组数据插入到Uri 指定的地方。
• update(Uri uri, ContentValues values, String where, String[] selectionArgs):更新Uri指定位置的数据。
• delete(Uri url, String where, String[] selectionArgs):删除指定Uri并且符合一定条件的数据。
参考:http://blog.csdn.net/zuolongsnail/article/details/6566317
转载:http://blog.csdn.net/xsf50717/article/details/47346221