ContentProvider初阶Cookbook
- 构造函数:至少要向父类型的构造函数传递数据库名、版本和Context等内容。
- onCreate:传入参数是一个SQLiteDatabase实例,可再次执行SQL语句创建数据表。(SQLiteDatabase.execSQL)
- onUpgrade:当版本升级的时候,参数包括数据库的实例、旧版本和新版本,通过增加列等手段来更新数据库的结构。最简单粗暴的方式,就是把已有内容删除,调用onCreate重新建立。
- 列映射:将数据库中的列做一层抽象,保存在静态的Map<String, String>中。
- URI匹配:创建一静态UriMatcher对象,将合法的URI存入。它仍是类似字典的结构,将URI关联到一个整型常量,以供别处使用。
- onCreate:在ContentProvider首次被访问是调用。可选择在此创建SQLiteOpenHelper类的实例,但是官方文档中提倡将创建数据库的内容延后操作。
- getType:从URI得MIME type的方法。【*】
- query: 【**】根据不同的URI,尝使用SQLiteQueryBuilder类辅助查询。(新建对象后,调用SQLiteQueryBuilder.setTables, ~.setProjectionMap, ~.appendWhere等等)。而后从SQLiteOpenHelper字段中获取可读数据库对象,用qb.query方法执行查询。查询的结果通过Cursor对象返回。
- insert: 除了URI之外,还需要检查输入的ContentValues对象(键值对)是否完整。而后获取可写的数据库对象,调用其insert方法。如果插入成功,将返回新插入内容的URI,此时应调用getContext().getContentResolver().notifyChange()来通知数据源的观察者。
- delete, update: 类似insert,重点在于要根据不同类型的URI采取不同的策略进行删改。此外,这两个方法会返回受到影响的数据记录的数量。
android:authorities="ContentProvider对应的URI的authority段"
android:name="ContentProvider的类型名"
ContentProvider初阶Cookbook的更多相关文章
- Nodejs初阶之express
PS: 2014/09/24 更新<Express 4.X 启航指南>,欢迎阅读和评论:) 老规矩,开头部分都是些自娱自乐的随想,想到哪写到哪... 到今天俺已经在俺厂工作俩年零几天了 ...
- R语言实战(一)介绍、数据集与图形初阶
本文对应<R语言实战>前3章,因为里面大部分内容已经比较熟悉,所以在这里只是起一个索引的作用. 第1章 R语言介绍 获取帮助函数 help(), ? 查看函数帮助 exampl ...
- 平衡树初阶——AVL平衡二叉查找树+三大平衡树(Treap + Splay + SBT)模板【超详解】
平衡树初阶——AVL平衡二叉查找树 一.什么是二叉树 1. 什么是树. 计算机科学里面的树本质是一个树状图.树首先是一个有向无环图,由根节点指向子结点.但是不严格的说,我们也研究无向树.所谓无向树就是 ...
- 重温ASP.NET WebAPI(一)初阶
重温ASP.NET WebAPI(一)初阶 前言 本文为个人对WebApi的回顾无参考价值.主要简单介绍WEB api和webapi项目的基本结构,并创建简单地webaapi项目实现CRUD操作. ...
- 《R语言实战》读书笔记--第三章 图形初阶(一)
3.1使用图形 可以使用pdf等函数将图形直接保存在文件中.在运用attach和detach函数的使用中经常出现错误,比如命名重复的问题,所以,应该尽量避免使用这两个函数. plot是一般的画图函数, ...
- UE4开发神秘海域类游戏原型 初阶(二):动画资源的整合
前一篇已经确定神海类游戏原型的目标,首先要做的就是3C's(Character, Controls, Camera)的开发. UE4的3C's的程序部分开发主要也就是基于他的GamePlay Fr ...
- R语言—图像初阶
dev.new() 创建一个新图像之前打开一个新的窗口 win.graph() 同上 pch() 指定绘制点时使用的符号 cex() 指定符号的大小,是一个数值,表示绘图符号相当于默认大小的缩放倍数 ...
- QT 初阶 第二章 创建对话框(查找对话框实例)
最终效果图: 该对话框由三个文件组成:finddialog.h .finddialog.cpp. main.cpp 代码+注释 /*--finddialog.h--*/ #ifndef FINDDIA ...
- QT 初阶 1.3 节 控件的几何排列
#include "mainwindow.h" #include <QApplication> #include <QHBoxLayout> #includ ...
随机推荐
- 关于jQuery,$(":button") 中的冒号是什么意思?
$(":button") 表示匹配所有的按钮.$("input:checked")表示匹配所有选中的被选中元素(复选框.单选框等,不包括select中的opti ...
- jquery值ajaxForm
参考 http://www.360doc.com/content/13/1001/17/1542811_318406421.shtml
- Oracle 检验身份证是否正确的存储过程
) ) ); ); ); ); ); ); ); ; , , , , , , , , , , , , , , , , , ); ; , ) ); .. loop )) ) ); , )), ), ...
- Delphi Excel
用delphi写excel文件 2007-03-18 21:12 1.引用: Excel2000, OleServer,Comobj, StdCtrls 2.声明变量: ExcelA ...
- ios专题 - socket(1)
二,BSD socket API 简介 BSD socket API 和 winsock API 接口大体差不多,下面将列出比较常用的 API: API接口 讲解 int socket(int add ...
- Javascript面试题浅析
分享几道JavaScript相关的面试题. 字符串反转 这这里提供了两种解题思路.如果各位读者还有其他的思路,可以分享交流! 第一方法: function reverse(str){ var sp = ...
- spring源码_下载以及转入eclipse (2016-11-08)
本例spring源码版本是4.3.0的, 所以jdk需要准备1.8的(不同版本源码要求的jdk不一样) 1.8版本myeclipse10无编译环境,只有运行环境,出现点问题,下载最新版本的Eclips ...
- js学习--DOM操作详解大全一(浏览器对象)
一.客户端中的window对象 window对象表示当前浏览器的窗口,它是一个顶级对象,我们创建的所有对象.函数.变量都是window对象的成员. window对象自带了一些非常有用的方法.属性. w ...
- [Linux]命令行模式切换
图形界面进入命令:Ctrl+Alt+T 进入终端命令:Ctrl+Alt+F1 or Ctrl+Alt+F2 切换至图形界面:按Alt+F7
- 转】VB中Set的用法
Set 语句 将对象引用赋给变量或属性. 语法 Set objectvar = {[New] objectexpression | Nothing} Set 语句的语法包含下面部分: 部分 描述 ob ...