本来想好好整理格式什么的 后来有点问题只好算了 直接复制了 也没整理格式。。主要方便自己随便哪里都可以看到 到时候再回想
ContentProvider初步
1 ContentProvider基本概念
为存储和获取数据提供了统一的接口
可以在不同应用程序之间共享数据
Android为常见的一些数据提供了ContentProvider(音频 图片 通信录等等)
ContentProvider使用表的形式来组织数据
ContentProvider所提供的函数
query inset update delete getType onCreate
2 Uri 统一资源标识符
每个ContentProvider都拥有一个公共的URI,用于表示这个ContentProvider所提供的数据
Android所提供的ContentProvider都存放在android.provider包中
3 ContentProvider的实现方法
(自己实现一个并不常见 使用内置较多)
1 定义一个CONTENT_URI常量
public static final Uri CONTENT_URI=Uri.parse("content://com.example.abc(AUTHORITY变量)/a/b");一般用类名等
定义常量 列名 必须有_ID(INTEGER PRIMARY KEY AUTOINCREMENT 如果使用sqllite3的话 type)
数据类型通过CONTENT_TYPE和CONTENT_TYPE_ITEM确定
CONTENT_TYPE vnd.android.cursor.dir(代表整张表)/vnd.namename
CONTENT_TYPE_ITEM vnd.android.cursor.item(某一条)/vnd.namename
表的结构可以通过implementBaseColumns来达到目的
2 定义一个类,继承ContentProvider
UriMatcher 用于匹配URI
uriMatcher.addURI("AUTHORITY变量","路径/#(id)",匹配常量)
userProjectionMap 一个<String,String>的HashMap
userProjectionMap.put(列名,列名的别名)
3 实现query insert update delete onCreate getType等方法
getType方法 根据传入的URI 返回该URI所表示的数据类型
eg:
switch(uriMatcher.match(uri)){
case 匹配常量1:
return 数据类型(CONTENT_TYPE)
case 匹配常量2:
return 数据类型2(CONTENT_TYPE_ITEM)
}
实现insert(Uri uri,ContentValue values)方法
eg:
通过sqllite操作
返回值为代表刚刚插入数据的Uri
实现onCreate方法
eg:
dh=new DatabaseHelper(getContext(),数据库名);
return true;
实现query方法
eg:
用到SQLiteQueryBuiler对象
qb.setTables(表名)
qb.setProjectionMap (之前创建的HashMap别名彪)
对单条 qb.appendWhere()
4 在AndroidManifest.xml中声明
<provider android:name="包名+类名"
android:authorities="包名+类名" /> 这里的authorities一定要与定义的常量一致
使用自定义ContentProvider
new ContentValues()存放要存入的值
uri=getContentResolver().inset(要插入的uri,contentValues)
分享到:
相关推荐
mars—android教学第一季第十九课的源码。不多介绍,这个找了好久才找到!
这里是个人在看mars的contentprovider中的做记录的一些笔记,因为这章没有源码,所以做了点笔记下来仔细看看,不需要的同志不需要下哦
www.mars-droid.com/Android开发视频教程 代码 源码 mars老师讲课 android 视频源码 TestCP源码 ContentProvider(在此特别感谢mars的无私奉献,此代码为跟随视频边学边做的)
ContentProvider需要用到的组件——PersonDao
本篇文章主要介绍了Android学习笔记之ContentProvider和Uri详解,对于学习Android的朋友具有一定的参考价值,有需要可以可以了解一下。
博客《ContentProvider数据库共享之——读写权限与数据监听》对应源码,博客地址:http://blog.csdn.net/harvic880925/article/details/44651967
博客《ContentProvider数据库共享之——MIME类型与getType()》对应源码,博客地址:http://blog.csdn.net/harvic880925/article/details/44620851
077集-ContentProvider(1)视频教程,个人感觉还可以,共享给大家。
1、Android Room操作SQLite数据 2、ContentProvider使用,使用Room进行数据库操作
ContentProvider自定义以及使用系统ContentProvider
contentprovider
ContentProvider概述 ContentProvider概述 ...ContentProvider概述ContentProvider概述ContentProvider概述ContentProvider概述ContentProvider概述 ContentProvider概述ContentProvider概述ContentProvider概述
xamarin学习笔记A11(安卓ContentProvider),内容提供器是用于跨程序共享数据。安卓中的电话簿、短信和媒体库等程序都实现了内容提供器,来给我们共享数据做二次开发。
ContentProvider的作用是为不同的应用之间数据共享,提供统一的接口,我们知道安卓系统中应用内部的数据是对外隔离的,要想让其它应用能使用自己的数据(例如通讯录)这个时候就用到了ContentProvider。 本次例子是...
现在请数一数你的手机中一共有多少...这个时候Contentprovider就排上用场了,Contentprovider能够在各个app之间进行数据的共享和传递,让信息不再成为孤岛,从这个意义上讲,你还能有不去学习Contentprovider的理由吗?
ContentProvider之通过ContentResolver获取图像、视频、音频举例
介绍ContentProvider使用方法,包括最简单的用法,一个项目中创建多个ContentProvider分别操作数据库表,以及一个ContentProvider操作多张数据库表的用法。
ContentProvider 共享SharedPreferences 值
androdi ContentProvider和Uri详解