这几天的学习,都是Android很实用的地方.所以练习起来,特别的有精神.今天主要学习的是Android中,统一数据访问的方式,和一些为了方便开
发.由系统提供的一些实用的工具类.如:用于匹配Uri的UriMatcher和获取Uri路径后面ID的ContentUris.这在工作中一定会用到
的,所以要认真的终结.
1.使用ContentProvider共享数据
1)继承 ContentProvider 并重写方法
ContentProvider创建后就会被调用:public
boolean onCreate()
供外部应用往ContentProvider添加数据:public Uri
insert(Uri uri, ContentValues values)
供外部应用从ContentProvider删除数
据:public int delete(Uri uri, String selection, String[] selectionArgs)
供
外部应用更新ContentProvider中的数据:public int update(Uri uri, ContentValues
values, String selection, String[] selectionArgs)
供外部应用从
ContentProvider中获取数据:public Cursor query(Uri uri, String[] projection,
String selection, String[] selectionArgs, String sortOrder)
返回当前Url所代
表数据的MIME类型:public String getType(Uri uri)
2)在 AndroidManifest.xml 使用 <provider> 对该
ContentProvider 进行配置
<provider
android:name=".PersonContentProvider"
android:authorities="cn.itcast.provider.personprovider"/>
3)使用ContentResolver操作ContentProvider中的数据
-
添加数据:public Uri insert(Uri uri, ContentValues values)
-删除数据:public
int delete(Uri uri, String selection, String[] selectionArgs)
-更新数
据:public int update(Uri uri, ContentValues values, String selection,
String[] selectionArgs)
-获取数据:public Cursor query(Uri uri, String[]
projection, String selection, String[] selectionArgs, String sortOrder)
总结:
--ContentProvider共享数据是程序和程
序之间通信用的.
--继承ContentProvider类
--统一了数据访问方式
2.Uri
Uri代表
要操作的数据
content://cn.itcast.provider.personprovider/person/10
-scheme:content://
-
主机名或authority:cn.itcast.provider.personprovider
-路径:/person/10
总结:
--Uri 主要包含了两部分信息:需要操作的
ContentProvider,对ContentProvider中的什么数据进行操作
--要操作 person 表中 id 为 10
的记录,可以构建这样的路径 :/person/10
--要操作 person 表中 id 为 10 的记录的 name 字段,
person/10/name
--要操作 person 表中的所有记录,可以构建这样的路径 :/person
--要操作 xxx
表中的记录,可以构建这样的路径 :/xxx
3.UriMatcher
UriMatcher
类用于匹配Uri
UriMatcher sMatcher = new UriMatcher(UriMatcher.NO_MATCH);
添
加需要匹配uri,如果匹配就会返回匹配
码:sMatcher.addURI(“cn.itcast.provider.personprovider”, “person”, 1);//
sMatcher.addURI(“cn.itcast.provider.personprovider”,
“person/#”, 2);
switch
(sMatcher.match(Uri.parse("content://cn.itcast.provider.personprovider/person/10")))
{
case 1
break;
case 2
break;
default:// 不匹配
break;
}
总结:
--常量 UriMatcher.NO_MATCH 表示不匹配任何路径的返回码
--# 号为通配符
4.ContentUris
ContentUris
类用于获取Uri路径后面的ID部分
1)为路径加上ID:
withAppendedId(uri, id)
Uri uri =
Uri.parse("content://cn.itcast.provider.personprovider/person")
Uri
resultUri = ContentUris.withAppendedId(uri, 10);
--生成后的 Uri 为:
content://cn.itcast.provider.personprovider/person/10
2)从路径中获取ID: parseId(uri)
Uri
uri = Uri.parse("content://cn.itcast.provider.personprovider/person/10")
long
personid = ContentUris.parseId(uri);
--获取的结果为 :10
相关推荐
基于深度学习的Person Re-ID(综述)
一. 问题的提出 Person Re-ID 全称是 Person Re-Identification,又称为 行人重检测 or 行人再识别,直观上可以通过两种思路进行比对,一种是 通过 静态图像(still-image)进行特征比对,另一种是通过视频的时序特征(temporal)进行 Video Re-Id。 不管是采用 图像特征比对的方法 还是 结合时序特征比
ContentProvider与ContentResolver使用
如下内容为从网络转载: 使用ContentProvider共享数据: 当应用继承ContentProvider类,并重写该类用于提供数据和存储数据的方法,就可以向其他应用共享其数据。虽然使用其他方法也可以对外共享数据,但数据访问方式会因数据存储的方式而不同,如:采用文件方式对外共享数据,需要进行文件操作读写数据;采用sharedpreferences共享数据,需要使用sha
关于对鱼眼相机图片进行畸变校正的两种思路
鱼眼畸变主要表现为径向畸变(Radial Distortion),图像中心正常,边缘向外拉伸。畸变模型通常基于入射角θ\thetaθ(光线与光学轴夹角)和图像半径rrr的关系。等距投影(Equidistant Projection)rdfθrdfθ,其中rdr_drd为畸变图像半径,fff为焦距,θ\thetaθ为入射角。等立体角投影(Equisolid Angle Projection)rd2fsinθ2rd2fsinθ/2。
Android 应用程序之间数据共享—ContentProvider
源自:http://www.moandroid.com/?p=157 在Android 应用程序之间数据共享—-ContentResolver中,已经说明了Android是如何实现应用程序之间数据共享的,并详细解析了如何获取其他应用程序共享的数据。ContentProviders存储和检索数据,通过它可以让所有的应用程序访问到,这也是应用程序之间唯一共享数据的方法。那么如何将应用程序的数据暴露
Coursera | 离散数学概论(北大)| quiz答案
Coursera离散数学概论quiz答案Week1:数理逻辑:基本概念Week2:数理逻辑:命题逻辑及形式系统Week3:数理逻辑:谓词逻辑及形式系统Week4:集合论:集合代数 先放下Coursera上找的离散数学部分相关课程: btw.线上学习拿证书还有很多,MOOC、edm等都可。 博主选了北京大学离散数学概论Discrete Mathematics Generality。Mooc上貌似也有,但是上课时间貌似不如Coursera灵活,Coursera时间自己调度,规定时间上完即可。目前课
OpenWRT软件源更换保姆级教程:从国内镜像到官方源一键切换(含常见报错解决)
本文提供OpenWRT软件源更换的详细教程,涵盖从国内镜像源到官方源的切换方法,并深度解析常见报错解决方案。针对国内网络环境,指导用户如何精准定位系统信息、备份配置、选择并配置清华等国内镜像源,以及处理签名验证失败、依赖缺失、404错误等典型问题,旨在提升软件包管理效率与稳定性。
基础篇:7.Content provider与Content Resolver实现数据共享
前言: 文件数据、数据库数据以及一些其它类型的数据在android中都是私有的,在android中,并没有提供所有应用共同访问的公共储存区域。但各应用程序间通常需要进行数据共享,如联系人信息等。 在android中,应用程序可以实现Content Provider的抽象接口从而将自己的数据暴露出去。Content Provider拥有一套通用的方法来实现对数据的增、删、改、查功能。但通...
告别手动复制粘贴!用R语言脚本批量抓取TCMSP中药靶点基因(附完整代码)
本文介绍如何使用R语言脚本自动化抓取TCMSP数据库中的中药靶点基因数据,告别手动复制粘贴的低效操作。通过详细的代码示例和参数设置,帮助研究人员快速获取并过滤符合药代动力学标准的中药成分及其靶点基因,大幅提升研究效率。特别适合生物信息学和中药现代化研究领域的从业者。
使用ContentProvider和ContentResolver实现应用程序间的数据共享
MyProvider项目中的MyProvider.java package practise.lxm.myprodiver; import android.content.ContentProvider; import android.content.ContentValues; import android.database.Cursor; import android.net.Uri;
英伟达 Jetson AGX Thor 官方入门教程(一)系统U盘安装
NVIDIA Jetson AGX Thor开发套件快速安装指南 本指南详细介绍了NVIDIA Jetson AGX Thor开发套件的安装流程。该套件搭载T5000 SoM,为物理AI和机器人应用提供强大支持。安装过程采用全新的JetPack 7.0方案,通过USB闪存盘即可完成BSP(Jetson Linux)安装,无需依赖Ubuntu主机。指南包含硬件开箱说明、两种配置模式(带显示器/无显示器)、详细的ISO镜像下载和USB制作步骤(推荐使用Balena Etcher工具),以及首次启动后的初始设置流
在 SAP ECC 中定义 ledger 时遇到 “Define exactly one leading ledger“(消息号 FAGL_LEDGER_CUST012)的错误
摘要:SAP系统要求必须且只能定义一个主导分类账(Leading Ledger)。当出现错误消息FAGL_LEDGER_CUST012时,需通过事务码FINSC_LEDGER或SPRO路径检查分类账配置,确保仅有一个分类账被标记为"LeadingLedger",其余设为"Non-leadingLedger"。主导分类账是SAP默认用于标准报表的核心分类账,修改配置需谨慎以免影响已有数据。若问题未解决,建议检查未完成配置或查阅SAP Notes获取解决方案。
ContentProvider之UriMatcher
上一篇文章中说到CP(ContentProvider简称)不一定使用数据库,但是我们使用CP一般都是用来进程通讯的,数据跨进程传输以后我们一般都会进行保存的,所以一般情况下用到CP都会用到数据库,所以CP在被继承以后会要求使用者复写几个增删改查的方法,当然保存数据也有其他的方式不一定使用数据库。 今天主要说说UriMatcher这个类的使用,我们在创建CP的子类以后在使用的时候一般都会使用到它,一...
VB摄像头监控
该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制
Android(四)数据存储之四ContentProvider
早上我们简要的对SQLite进行回顾,然后将SQLite的事务管理和SQLiteDataBase提供的Insert、Update、Delete、Query方法进行了简单的讲解。 今日的重点内容是ContentProvider(内容提供者)和网络存储,我将对这两大内容进行总结。关于SQLiteDataBase提供的便捷方法,它们会在ContentProvider被使用。SQLite的事务管理比较...
OV9734 DATASHEET,完整规格书
OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等
TMS_WebGMaps_1.9.8.0_Full_Source
TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder
ContentProvider,Uri,ContentResolver,UriMatcher详解
前言正如标题,四个类组成一种数据共享解决方案。下面会介绍如何使用系统提供的Api进行数据在不同应用间共享 (数据存储使用sqlite db)ContentProvider在android中的作用是对外共享数据,也就是说你可以通过ContentProvider把应用中的数据共享给其他应用访问, 其他应用可以通过ContentProvider对你应用中的数据进行添删改查。关于数据共享,以前我
jdk-8u144-linux-x64.tar.gz.
该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包
内容提供器之 权限申请&ContentResolver& git用法
内容提供器 不同应用程序间的数据共享,允许访问,保证安全 不同与文件与SharedPreferences的全局可读写,内容提供器可选择只对哪一部分进行共享 Android权限机制 普通权限和危险权限 普通:不威胁用户安全和隐私,系统自动授权; 危险:用户手动授权,运行时权限看起来用的是权限名,实际对应权限组的其他权限也会同时被授权, ...
Android基础——ContentProvider和contentResolver
ContentProviderContentProvider是什么?权限运行时权限 ContentProvider是什么? 利用ContentProvider可实现在不同应用程序之间的数据共享,并保证被访问数据的安全性。 权限 普通权限:不会直接威胁到用户安全和隐私的权限,这部分权限会自动授权,不再需要手动操作 危险权限:可能会触及用户隐私或对设备安全性造成影响的权限,必须要由用户手动授权,否则无法使用。危险权限需要进行运行时权限处理 运行时权限 ...
ContentProvider与ContentResolver
ContentProvider与ContentResolver及ContentObserve监听
Android ContentProvider以及权限设置 sdk初始化方式
首先了解一下创建一个ContentProvider类需要哪些必要的参数(要继承ContentProvider父类): 1.URI(重写的每个函数中都会用得到的参数) 2.MIME类型 因为重写的方法中要重写一个方法叫做getType()来返回MIME型 3.重写四个增删改查函数; 那如何访问到另一个进程中的ContentProvider呢? ...
Android:ContentProvider、URI、UriMatcher、ContentUris、ContentResolver、ContentObserver
使用ContentProvider共享数据【组件必须放在应用包或者子包下面,还需要在清单文件中配置,像图库、短信、通讯录都是内容提供者】 当应用继承ContentProvider类,并重写该类用于提供数据和存储数据的方法,就可以向其他应用共享其数据。以前我们学习过文件的操作模式,通过指定文件的操作模式为Context.MODE_WORLD_READABLE或Context.MODE_WORL
ContentProvider(内容提供者),UriMatcher(Uri匹配器)
ContentProvider:内容提供者的作用 应用程序创建的数据库默认都是私有的,别的应用程序不可以访问里面的数据。 如果有需求把自己应用程序私有的数据库暴露给别的用户增删改查,就需要使用内容提供者
Android APP完整基础教程(08)四大组件-ContentProvider
1 ContentProvider相关概念 ContentProvider是跨应用数据交换的标准,主要用于在许可的情况下获取其他应用的数据。为了更好的了解ContentProvider,我们需要了解URI和MIME。 1.1 URI(Uniform Resource Identifier)统一资源标识符 这个标识符主要用于唯一标识 ContentProvider和其中的数据。URI 为系统中的每一个资源赋予一个名字。 1.1.1 URI格式解读 每一个 ContentProvider 都拥有一个公
说说 Android 的内容提供器(ContentResolver )
如果一个 APP 使用内容提供器对其数据提供了对外访问的接口,那么任何其他的 APP 都可以访问这部分的数据啦,像 Android 中的电话簿、短信等程序都提供了类似的访问接口。 1 ContentResolver 基础 ContentResolver 中提供了一系列方法用于对数据进行 CRUD 操作: 方法 说明 insert() 添加数据。 upd...
十二、ContentProvider和Uri详解
一、使用ContentProvider(内容提供者)共享数据 ContentProvider在android中的作用是对外共享数据,也就是说你可以通过ContentProvider把应用中的数据共享给其他应用访问,其他应用可以通过ContentProvider对你应用中的数据进行添删改查。关于数据共享,以前我们学习过文件操作模式,知道通过指定文件的操作模式为Context.MODE_WORLD_...
【Android】安卓四大组件之ContentProvider知识总结
统一资源标识符(URI)是一种用于标识资源的字符串。它可以是一个网址、文件路径、或其他形式的资源定位符。在Android中,URI通常用于访问内容提供者(Content Provider)提供的数据。获取设备上存储的所有图片获取设备上所有联系人信息获取ID为45的单个联系人信息在Java中,可以通过Uri.parse方法将字符串URI转换为Uri对象。
2万+



被折叠的 条评论
为什么被折叠?



