Content Providers(数据共享)的使用

原创 2011年01月24日 01:15:00

Content Providers

Content Providers 作用是使得各个应用程序之间实现数据共享。

ContentResolver

ContentResolver cr = getContentResolver();

URI

每个Content Providers都会对外提供一个公共的URI(包装成Uri对象),其他应用程序就可以通过Content Providers传入这个URI来对数据进行操作。

URI由3个部分组成:"content://",数据的路径,标识ID(可选)

系统的一些URI: content://media/internal/images(返回设备上存储的所有图片) content://contacts/people/5(联系人信息中ID为5的联系人记录) content://contacts/people/(返回设备上的所有联系人信息)

系统提供一些辅助类,以类变量形式给出的查询字符串 content://contacts/people/5 ->

Uri person = ContentUris.withAppendedId(People.CONTENT_URI,5);

查询数据

使用ContentResolver.query()或者Activity.managedQuery()传入一个URI来确定当前要操作的数据 返回一个Cursor对象。

//查询联系人信息中ID为5的联系人记录
Uri person = ContentUris.withAppendedId(People.CONTENT_URI,5);
Cursor cur = managedQuery(person,null,null,null);
//取得联系人姓名,电话,并按名字的升序排列
//每个Provider都有一个_id列,为每个记录保存一个数字ID值,
//_COUNT返回记录数,对所有行都是相同的。
String[] projection = new String[]{
                       
People._ID,
                       
People._COUNT,
                       
People.NAME,
                       
People.NUMBER
                     
};
Uri contacts = People.CONTENT_URI;
Cursor managedCursor = managedQuery(
                       projection
,//返回指定列的数据
                       
null,      //返回所有行的数据
                       
null,      //可选参数
                       
People.NAME+"ASC");//按名字的升序排列

修改数据

private void updateRecord(int id,int num){
   
Uri uri = ContentUris.withAppendedId(People.CONTENT_URI,id);
   
ContentValues values = new ContentValues();
   values
.put(People.NUMBER,num);
   getContentResolver
().update(uri,values,null,null);
}

添加数据

//调用ContentResolver.insert()方法来添加一条记录
//参数:记录目标的URI,新记录值的ContentValues(Map)对象,返回一个新记录的URI(包含记录号)
ContentValues values = new ContentValues();
values
.put(People.NAME,"Abraham");
values
.put(People.STARRED,1);
Uri uri = getContentResolver.insert(People.CONTENT_URI,values);

删除数据

Uri uri = People.CONTENT_URI;
getContentResolver
().delete(uri,null,null);
//指定where条件语句删除
getContentResolver
().delete(uri,"NAME='ABORT'",null);

相关文章推荐

使用Content Providers方式共享数据

http://www.cnblogs.com/menlsh/archive/2013/04/17/3027394.html http://blog.csdn.net/flowingflying/art...

Android Develop Training——数据共享(Sharing Content)

数据共享          能够相互交流和整合是Android应用非常重要的一个功能,所以才会有当已经有一个应用存在这个功能时,在你的应用中这个功能就不算是一个核心功能的说法。          ...
  • zmywly
  • zmywly
  • 2013年10月09日 19:42
  • 1881

Android:Content Provider数据共享

ContentProvider 属于Android应用程序的组件之一,作用是对外共享数据。我们可以通过ContentProvider把应用中的数据共享给其他应用访问,其他应用可以通过ContentPr...

android数据共享之Content Provider(访问篇CRUD)

5、访问Content Provider 这里首先学习如何使用Content provider(包括系统提供的,比如创建一个短信收发系统)。 Content Providers的用户都不可能直接访...

Content Provider实现跨程序数据共享

自定义Content Provider 本次项目代码在实践–升级数据库最佳写法这篇博客的基础上增加的。 需要自定义Content Provider的代码如下: public class MyDatab...

android数据共享之Content Provider(概念篇)

1、什么是Content Provider: Contentprovider机制:用于支持在多个应用中存储和读取数据,这也是android跨应用共享数据的唯一方式。比如音频、视频、图片和私人通讯录等...

Content Provider数据共享机制

内容提供器(ContentProvider)主要用在不同的应用程序间实现数据共享的功能,他提供了一整套完整的机制,允许一个程序访问另一个程序中额数据,同时还能保证被访问的数据的安全性。 内容提供器的用...

Android 数据存储——content providers

对自己学习contentproviders总结笔记,主要描述了contentproviders的服务构建,客户端用法。...

使用SharedPreferences实现数据共享

  • 2013年04月23日 15:30
  • 1.75MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Content Providers(数据共享)的使用
举报原因:
原因补充:

(最多只允许输入30个字)