1.系统自带的许多数据(联系人,本地信息等)保存在sqllite数据库,然后封装成许多ContentProvider来供其他程序访问。

2.对sqllite数据库的操作,可以在命令行通过adb工具登录设备运行sqlite3来操作。
3.ContentProvider 是用URI来标示,访问程序通过URI来访问相应的数据,URI的结构是
   content://***/*/*...其中***是授权,在ContentProvider提供程序的说明文件中声明,后面的*表示路径,具体由ContentProvider实现来解释,ContentProvider为简化URI的调用,将这种URI定义为常量字符串供查看和调用。
 
4.客户端通过URI和需要获取的列,选择条件,排序条件等用相应的api来获取结果,结果是一个android Cursor,可以使用相应的方法获取结果集中的内容,返回的数据是MIME格式,类型/子类型。
 
5.android内置
 
 
6.从Context中获取ContentResolver,然后ContentResolver通过URI  进行AUD ContentProvider操作
7.可以通过managedQuery方法获取一个ContentProvider数据集合(Cursor)然后通过Cursor类的,moveFirst() afterLast() moveNext()来遍历数据,并可以先获取列索引(Cursor.getColumnIndex(columnName)),然后根据索引获取列值(Cursor.getString(ColumnIndex))
 
8.where子句可以通过URI和参数两种方式,orderby子句可以通过参数,having可以通过参数指定。
9.操作记录时需要一个ContentValues类型,该类型为键值对,键为列名值为需要插入的值。insert操作会返回插入记录的URI
10.将文件添加到ContentProvider中。
     10.1通过一个insert操作获取URI
     10.1通在URI上使用(ContentResolver.openOutputStream(URI)来让提供程序产生一个内部文件,并将文件名保存在保留列_data上,然后返回这个内部文件的输出流。
 
11.实现一个ContentProvider的几个步骤
    11.1 计划数据库,URI及列名称,创建元数据类来定义所有这些数据元素常量
    11.2扩展抽象类ContentProvider
    11.3实现方法query,insert,update,delete和getType
    11.4在描述文件中注册提供程序。
 
12 扩展ContentProvider
     12.1扩展ContentProvider时需要定义和初始化一个列名称与别名的map,就算没有别名也需要。
     12.2用UriMatcher来识别uri
     12.3通过扩展SQLiteOpenHelper类来创建数据库,创建表,获取数据库实例。
     
 

android 学习四 ContentProvider的更多相关文章

  1. android学习四(Activity的生命周期)

    要学好活动(Activity).就必需要了解android中Activity的声明周期.灵活的使用生命周期.能够开发出更好的程序,在android中是使用任务来管理活动的,一个任务就是一组存放在栈里的 ...

  2. android学习四---Activity和Intent

    1.android项目资源深入了解 在深入学习android之前,先好好玩玩手机上的应用,大部分程序都有一个图标,点开图标,程序启动,一定时间后,程序会跳转到第一个界面,比如手机QQ,点开图标,会跳出 ...

  3. Android学习四:数据库操作

    1前言 android中使用SQLite作为数据库,在进行相关的开发的时候不需要导入包.SQLite起符合SQL标准,也有自己的一些特性,是一个轻量级的数据库. 2代码 简单的数据库类封装 packa ...

  4. Android学习四、Android中的Adapter

    一.Adapter的介绍 An Adapter object acts as a bridge between an AdapterView and the underlying data for t ...

  5. openfire Android 学习(四)----单人聊天和多人聊天(发送消息、接收消息)

    一.单人聊天 1)发送消息: 首先要获取一个聊天窗口,getConnection()为获取连接connection的方法,调用getFriendChat()获取 [java] view plainco ...

  6. Android学习记录(3)—Android中ContentProvider的基本原理学习总结

    一.ContentProvider简介        当应用继承ContentProvider类,并重写该类用于提供数据和存储数据的方法,就可以向其他应用共享其数据.虽然使用其他方法也可以对外共享数据 ...

  7. 五、Android学习第四天补充——Android的常用控件(转)

    (转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 五.Android学习第四天补充——Android的常用控件 熟悉常用的A ...

  8. 四、Android学习第四天——JAVA基础回顾(转)

    (转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 四.Android学习第四天——JAVA基础回顾 这才学习Android的 ...

  9. Android学习笔记(四十):Preference的使用

    Preference直译为偏好,博友建议翻译为首选项.一些配置数据,一些我们上次点击选择的内容,我们希望在下次应用调起的时候依旧有效,无须用户再一次进行配置或选择.Android提供preferenc ...

随机推荐

  1. DVR_RDK编译报错

    报错信息: abnormal termination of /opt/dm8168/dvr_rdk/../ti_tools/cgt_dsp/cgt6x_7_3_5//bin/cmp6x make[2] ...

  2. 苹果手机(ios系统)蓝牙BLE的一些特点

    摘自<BluetoothDesignGuidelines.pdf>文档 1. pairing: 苹果手机无法主动发起SMP配对流程,可通过以下两种方式发起配对流程: (1)从端主动发起配对 ...

  3. PHP----练习-----三级联动

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  4. caffe 学习(2)——基本原理

    参考 http://caffe.berkeleyvision.org/tutorial/ 表达:models和optimizations使用纯文本文档形式定义,不是用代码定义: 速度:适用于工业和科研 ...

  5. springboot多数据源的配置与使用

    转自:https://www.jianshu.com/p/34730e595a8c 之前在介绍使用JdbcTemplate和Spring-data-jpa时,都使用了单数据源.在单数据源的情况下,Sp ...

  6. CSU 1726: 你经历过绝望吗?两次!(bfs+优先队列)

    传送门: http://acm.csu.edu.cn/csuoj/problemset/problem?pid=1726 1726: 你经历过绝望吗?两次! Submit Page    Summar ...

  7. 系统优化怎么做-JVM优化之VisualVM

    大家好,这里是「聊聊系统优化 」,并在下列地址同步更新 博客园:http://www.cnblogs.com/changsong/ 知乎专栏:https://zhuanlan.zhihu.com/yo ...

  8. 查询sqlserver 表结构呀

    SQL Server里查询表结构命令 对于SQL Server数据库有两种方法查询表结构 第一种方法 sp_help Accounts_Users     其中Accounts_Users 表示表名 ...

  9. Window系统Oracle 安装

    一:安装Oracle 数据库软件 1.先去官网下载所需文件:http://www.oracle.com/technetwork/database/enterprise-edition/download ...

  10. js之广告

    涉及到offset等有关获取各种尺寸问题下 <!doctype html> <html lang="en"> <head> <meta c ...