本来想好好整理格式什么的 后来有点问题只好算了 直接复制了 也没整理格式。。主要方便自己随便哪里都可以看到 到时候再回想
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——contentProvider”聚焦于如何利用ContentProvider来实现不同应用程序之间的数据交换。 ContentProvider是Android系统提供的一种机制,允许应用程序将自己的数据公开给其他应用。...
这里是个人在看mars的contentprovider中的做记录的一些笔记,因为这章没有源码,所以做了点笔记下来仔细看看,不需要的同志不需要下哦
www.mars-droid.com/Android开发视频教程 代码 源码 mars老师讲课 android 视频源码 TestCP源码 ContentProvider(在此特别感谢mars的无私奉献,此代码为跟随视频边学边做的)
总之,这份"Android开发笔记——模拟器、应用教程"将引导你全面了解Android开发的核心技术和实践方法,无论你是初学者还是经验丰富的开发者,都可以从中受益。通过学习和掌握这些知识点,你将能够创建出高质量、适应...
ContentProvider需要用到的组件——PersonDao
本笔记集合了"Mars Android视频教程"的主要知识点,旨在帮助学习者回顾和巩固课程中的核心概念。以下是根据文件名整理出的各章节内容详解: 1. **Animations.doc** - 动画是Android应用中提升用户体验的关键元素。...
《Mars老师视频源代码详解——深入Android编程实践》 Mars老师的视频源代码是一份宝贵的教育资源,专注于Android平台的开发。这份源代码是Mars老师在教学过程中使用的实例,旨在帮助学习者深入理解Android应用的...
ContentProvider和Uri是Android系统中两个非常重要的概念,它们主要用于数据的共享和访问。在Android平台上,ContentProvider是一种机制,允许应用程序之间安全地共享数据,而Uri(Uniform Resource Identifier)则...
在这个"077集-ContentProvider(1)视频教程"中,我们将会深入理解ContentProvider的工作原理及其重要性。 首先,ContentProvider是Android系统提供的一种机制,允许应用将自己的数据结构公开,使得其他应用可以读取...
本篇笔记将深入探讨Xamarin下的Android ContentProvider的使用和实现。 1. **ContentProvider概述** - 内容提供器是Android四大组件之一(Activity、Service、BroadcastReceiver、ContentProvider),它的主要职责...
博客《ContentProvider数据库共享之——读写权限与数据监听》对应源码,博客地址:http://blog.csdn.net/harvic880925/article/details/44651967
在Android应用开发中,数据持久化是一个至关重要的环节,而Android Room和ContentProvider是其中的两个关键组件。本文将深入探讨这两个技术,并结合实际案例,解释如何在Android应用中使用它们来管理和共享SQLite...
本篇文章将详细讲解如何使用ContentProvider通过ContentResolver来获取系统的图片、视频和音频资源。 一、ContentProvider基础 ContentProvider是Android提供的一种统一的数据访问接口,它封装了对数据的操作,包括...
博客《ContentProvider数据库共享之——MIME类型与getType()》对应源码,博客地址:http://blog.csdn.net/harvic880925/article/details/44620851
"Mars 老师android视频(1-5季)下载地址"这个标题提到了一个关于Android开发的教育资源系列,由Mars老师主讲,涵盖五季的内容。Mars老师在IT行业内以其深入浅出的讲解风格和丰富的教学经验而知名,他的课程通常会...
在Android系统中,ContentProvider是一种核心组件,它允许应用程序之间共享数据,而无需直接访问对方的内部存储。在本教程中,我们将深入探讨如何利用ContentProvider来操作文件,以及其在跨应用数据传输中的作用。 ...
《Mars全套安卓视频开发》是一套针对Android初学者精心设计的教程,旨在帮助那些对Android编程基础较为薄弱的学习者快速掌握Android应用开发的核心技能。本教程覆盖了从入门到进阶的全方位知识,通过五季的内容,...
ContentProvider是Android系统中用于数据共享的一个核心组件,它允许应用程序之间进行数据交换,而无需了解对方的具体实现。本教程将深入讲解ContentProvider的使用方法,包括基础操作、多ContentProvider管理和多表...
此外,Android还提供了一个更高级的API——ContentProvider,它允许不同应用程序间共享数据。ContentProvider基于SQLite数据库,提供了一种统一的接口,使得数据的访问更加安全和规范。如果你的应用程序需要与其他...