总结提高,与君共勉

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

最新文章

  1. Windows7-USB-DVD-tool提示不能拷贝文件的处理
  2. ASP.NET MVC5 网站开发实践(二) Member区域–管理列表、回复及删除
  3. Cocos2d-x win7 + vs2010 配置图文详解
  4. redis sentinel 集群配置-主从切换
  5. LA 5135 井下矿工
  6. [C#]AES加密算法实现
  7. JAVA 注解的几大作用及使用方法详解【转】
  8. 基于HTML5 SVG炫酷文字爆炸特效
  9. XML初学笔记
  10. ViewBag、ViewData和TempData使用方法、区别与联系
  11. Ubuntu 报错 sudo: unable to resolve host
  12. 深入解析HashMap、HashTable
  13. Delphi XE 新功能试用:多种皮肤样式静、动态设置方法
  14. js-jQuery性能优化(一)
  15. COCOMOII
  16. Notes of Daily Scrum Meeting(11.12)
  17. 免费在线直播课,送给所有IT项目经理
  18. docker及服务器遇到的坑
  19. python通过os.walk() 遍历出多级目录下所有文件绝对路径
  20. PDF文件的加载及展示

热门文章

  1. 下拉框多级联动辅助js,优化您的下拉框
  2. python的模块与包的导入
  3. python笔记十四(高阶函数——map/reduce、filter、sorted)
  4. Android Multimedia框架总结(二十四)MediaMuxer实现手机屏幕录制成gif图
  5. 拦截器(Interceptor)中的invocation.invoke()
  6. Spark Streaming中的操作函数分析
  7. 【SSH系列】Hibernate映射 -- 一对一单向关联映射
  8. linuxsvn源代码版本库建立
  9. windows系统下安装和使用ROS的解决方案 (1 win_ros 2 rosserial_windows)
  10. VIM编辑器操作命令积累