`

Mars视频笔记——ContentProvider

阅读更多

 

本来想好好整理格式什么的 后来有点问题只好算了 直接复制了 也没整理格式。。主要方便自己随便哪里都可以看到 到时候再回想 

 

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

    本教程“mars—第一季android——contentProvider”聚焦于如何利用ContentProvider来实现不同应用程序之间的数据交换。 ContentProvider是Android系统提供的一种机制,允许应用程序将自己的数据公开给其他应用。...

    contentProvider mars的视频笔记

    这里是个人在看mars的contentprovider中的做记录的一些笔记,因为这章没有源码,所以做了点笔记下来仔细看看,不需要的同志不需要下哦

    android mars视频代码 TestCP源码 ContentProvider

    www.mars-droid.com/Android开发视频教程 代码 源码 mars老师讲课 android 视频源码 TestCP源码 ContentProvider(在此特别感谢mars的无私奉献,此代码为跟随视频边学边做的)

    Android开发笔记——模拟器、应用教程 pdf

    总之,这份"Android开发笔记——模拟器、应用教程"将引导你全面了解Android开发的核心技术和实践方法,无论你是初学者还是经验丰富的开发者,都可以从中受益。通过学习和掌握这些知识点,你将能够创建出高质量、适应...

    ContentProvider需要用到的组件——PersonDao

    ContentProvider需要用到的组件——PersonDao

    Mars Android视频教程的笔记

    本笔记集合了"Mars Android视频教程"的主要知识点,旨在帮助学习者回顾和巩固课程中的核心概念。以下是根据文件名整理出的各章节内容详解: 1. **Animations.doc** - 动画是Android应用中提升用户体验的关键元素。...

    Mars老师视频源代码

    《Mars老师视频源代码详解——深入Android编程实践》 Mars老师的视频源代码是一份宝贵的教育资源,专注于Android平台的开发。这份源代码是Mars老师在教学过程中使用的实例,旨在帮助学习者深入理解Android应用的...

    Android学习笔记之ContentProvider和Uri详解

    ContentProvider和Uri是Android系统中两个非常重要的概念,它们主要用于数据的共享和访问。在Android平台上,ContentProvider是一种机制,允许应用程序之间安全地共享数据,而Uri(Uniform Resource Identifier)则...

    077集-ContentProvider(1)视频教程

    在这个"077集-ContentProvider(1)视频教程"中,我们将会深入理解ContentProvider的工作原理及其重要性。 首先,ContentProvider是Android系统提供的一种机制,允许应用将自己的数据结构公开,使得其他应用可以读取...

    xamarin学习笔记A11(安卓ContentProvider)

    本篇笔记将深入探讨Xamarin下的Android ContentProvider的使用和实现。 1. **ContentProvider概述** - 内容提供器是Android四大组件之一(Activity、Service、BroadcastReceiver、ContentProvider),它的主要职责...

    博客《ContentProvider数据库共享之——读写权限与数据监听》对应源码

    博客《ContentProvider数据库共享之——读写权限与数据监听》对应源码,博客地址:http://blog.csdn.net/harvic880925/article/details/44651967

    Android+Room+ContentProvider

    在Android应用开发中,数据持久化是一个至关重要的环节,而Android Room和ContentProvider是其中的两个关键组件。本文将深入探讨这两个技术,并结合实际案例,解释如何在Android应用中使用它们来管理和共享SQLite...

    ContentProvider获取系统的图片视频和音频

    本篇文章将详细讲解如何使用ContentProvider通过ContentResolver来获取系统的图片、视频和音频资源。 一、ContentProvider基础 ContentProvider是Android提供的一种统一的数据访问接口,它封装了对数据的操作,包括...

    博客《ContentProvider数据库共享之——MIME类型与getType()》对应源码

    博客《ContentProvider数据库共享之——MIME类型与getType()》对应源码,博客地址:http://blog.csdn.net/harvic880925/article/details/44620851

    Mars 老师android视频(1-5季)下载地址

    "Mars 老师android视频(1-5季)下载地址"这个标题提到了一个关于Android开发的教育资源系列,由Mars老师主讲,涵盖五季的内容。Mars老师在IT行业内以其深入浅出的讲解风格和丰富的教学经验而知名,他的课程通常会...

    android 用ContentProvider操作文件

    在Android系统中,ContentProvider是一种核心组件,它允许应用程序之间共享数据,而无需直接访问对方的内部存储。在本教程中,我们将深入探讨如何利用ContentProvider来操作文件,以及其在跨应用数据传输中的作用。 ...

    Mars全套安卓视频开发.zip

    《Mars全套安卓视频开发》是一套针对Android初学者精心设计的教程,旨在帮助那些对Android编程基础较为薄弱的学习者快速掌握Android应用开发的核心技能。本教程覆盖了从入门到进阶的全方位知识,通过五季的内容,...

    ContentProvider使用方法demo

    ContentProvider是Android系统中用于数据共享的一个核心组件,它允许应用程序之间进行数据交换,而无需了解对方的具体实现。本教程将深入讲解ContentProvider的使用方法,包括基础操作、多ContentProvider管理和多表...

    Android源码——数据库SQLite.zip

    此外,Android还提供了一个更高级的API——ContentProvider,它允许不同应用程序间共享数据。ContentProvider基于SQLite数据库,提供了一种统一的接口,使得数据的访问更加安全和规范。如果你的应用程序需要与其他...

Global site tag (gtag.js) - Google Analytics