四大组件之ContentProvider小结
总结提高,与君共勉
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
最新文章
- Windows7-USB-DVD-tool提示不能拷贝文件的处理
- ASP.NET MVC5 网站开发实践(二) Member区域–管理列表、回复及删除
- Cocos2d-x win7 + vs2010 配置图文详解
- redis sentinel 集群配置-主从切换
- LA 5135 井下矿工
- [C#]AES加密算法实现
- JAVA 注解的几大作用及使用方法详解【转】
- 基于HTML5 SVG炫酷文字爆炸特效
- XML初学笔记
- ViewBag、ViewData和TempData使用方法、区别与联系
- Ubuntu 报错 sudo: unable to resolve host
- 深入解析HashMap、HashTable
- Delphi XE 新功能试用:多种皮肤样式静、动态设置方法
- js-jQuery性能优化(一)
- COCOMOII
- Notes of Daily Scrum Meeting(11.12)
- 免费在线直播课,送给所有IT项目经理
- docker及服务器遇到的坑
- python通过os.walk() 遍历出多级目录下所有文件绝对路径
- PDF文件的加载及展示
热门文章
- 下拉框多级联动辅助js,优化您的下拉框
- python的模块与包的导入
- python笔记十四(高阶函数——map/reduce、filter、sorted)
- Android Multimedia框架总结(二十四)MediaMuxer实现手机屏幕录制成gif图
- 拦截器(Interceptor)中的invocation.invoke()
- Spark Streaming中的操作函数分析
- 【SSH系列】Hibernate映射 -- 一对一单向关联映射
- linuxsvn源代码版本库建立
- windows系统下安装和使用ROS的解决方案 (1 win_ros 2 rosserial_windows)
- VIM编辑器操作命令积累