ContentProvider 和 ContentResolver学习中的UriMatcher 和ContentUris

「Android高级工程师」BAT大厂面试基础题集合-下 Github标星6.5K 接着上篇,建议收藏!需要的点击 【了解更多 】或者直接在评论区评论 领取资料 看到我都会回复的! [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yCNpIKq8-1591090939069)(https://upload-images.jianshu.io/upload_images/22459598-b21525faef1d868b?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)] 06-内容提供者 1.在Cont. 阅读详情

学习ContentProvider 和ContentResolver时:

两个用于操作Uri的工具类,分别为UriMatcher 和ContentUris。 

UriMatcher 用于匹配Uri。 

用法如下:  

首先把你需要匹配Uri路径全部给注册上: 

//UriMatcher : 用于匹配Uri的容器
private static UriMatcher uriMatcher = new UriMatcher(UriMatcher.NO_MATCH);
static {
//添加一个uri
//*:代表任何text, #:代表任何number, other:代表精确匹配
uriMatcher.addURI(AUTHORITY, "person ", 1);
uriMatcher.addURI(AUTHORITY, "person /#", 2);
}


注 册完需要匹配的Uri后,就可以使用uriMatcher.match(uri)方法对输入的Uri进行匹配,

如果匹配就返回匹配码,匹配码是调用 addURI()方法传入的第三个参数,

例如匹配content://com.test.provider.personprovider/person 路径,返回的匹配码为1。 

//常量UriMatcher.NO_MATCH表示不匹配任何路径的返回码  

UriMatcher sUriMatcher = new UriMatcher(UriMatcher.NO_MATCH); 

添加需要匹配的uri,如果匹配就会返回匹配码  
如果match()方法匹配content://com.test.provider.personprovider/person路径,返回匹配码为1  uriMatcher.addURI(“com.test.provider.personprovider”, “person”, 1); 
如果match()方法匹配content://com.test.provider.personprovider/person/530路径,返回匹配码为2 
//#号为通配符  
uriMatcher.addURI(“com.test.provider.personprovider”, “person/#”, 2); 

 
ContentUris类 
用于获取Uri路径后面的ID部分: 

1、ContentUris.withAppendedId(Uri contentUri, long id)用于为路径加上ID部分: 

Uri uri = Uri.parse("content://com.test.provider.personprovider/person") 

Uri resultUri = ContentUris.withAppendedId(uri, 5); 

生成后的Uri为:content://com.test.provider.personprovider/person/5 

其结果等价于Uri.withAppendedPath(Uri baseUri, String pathSegment) 

Uri resultUri = Uri.withAppendedPath(uri, "5"); 


2、ContentUris.parseId(uri)方法用于从路径中获取ID部分: 

Uri uri = Uri.parse("content://com.test.provider.personprovider/person/5") 

long personid = ContentUris.parseId(uri); //获取的结果为:5 

 
ContentResolver :
通过URI来添加、删除、修改和查询ContentProvider中提供的数据。除了URI以外,还必须知道需要获取的数据段的名称,以及此数据段的数据类型。如果你需要获取一个特定的记录,你就必须知道当前记录的ID,也就是URI中D部分。 可以使用Activity提供的getContentResolver()方法。  
ContentResolver使用insert、delete、update、query方法来操作数据。
Android-ContentProvider实例详解 MIME是指定某个扩展名的文件用一种应用程序来打开,就像你用浏览器查看PDF格式的文件,浏览器会选择合适的应用来打开一样。ContentObserver(内容观察者),目的是观察特定Uri引起的数据库的变化,继而做一些相应的处理,它类似于数据库技术中的触发器(Trigger),当ContentObserver所观察的Uri发生变化时,便会触发它.分为类型和子类型,Android遵循类似的约定来定义MIME类型,每个内容类型的Android MIME类型有两种形式:多条记录(集合)和单条记录。 阅读详情

相关推荐

Android学习笔记---20_采用ContentProvider对外共享数据, UriMatcher类使用介绍 ,ContentUris类使用介绍,使用ContentResolver操作Conte

20_采用ContentProvider对外共享数据 ------------------------------------------ 1.比如通讯录,就是通过ContentProvider,实现的,通讯录就是要获得应用中的数据,可以把   项目中的,xml,文本,数据库中的等,任意类型的数据进行共享; -----------------------------------------

添柴程序猿的专栏 2695

ContentUris及withAppendedId()和parseId() .

小知识 什么是ContentUris? ContentUris是content URI的一个辅助类。它有两个方法很有用,具体如下所示。 public static Uri withAppendedId(Uri contentUri, long id),这个方法负责把id和 contentUri连接成一个新的Uri。比如在我们这个例子当中是这么使用 的: ContentUris.withAp

u012062454的专栏 950

华东师范大学2020机试题解

1.统计卡牌的值 #include<iostream> #include<string> #include<vector> //#include<algorithm> using namespace std; int main() { int n; cin>>n; int answer=0; for(int i=0;i<n;++i) { string str; ci

qq_42254342的博客 1901

ContentProvider之UriMatcher

上一篇文章中说到CP(ContentProvider简称)不一定使用数据库,但是我们使用CP一般都是用来进程通讯的,数据跨进程传输以后我们一般都会进行保存的,所以一般情况下用到CP都会用到数据库,所以CP在被继承以后会要求使用者复写几个增删改查的方法,当然保存数据也有其他的方式不一定使用数据库。 今天主要说说UriMatcher这个类的使用,我们在创建CP的子类以后在使用的时候一般都会使用到它,一...

static_zh的博客 369

【python】geopandas库安装出现各种问题?可以看看这篇文章

geopandas的安装方法

jgsecurity的博客 3887

3DSlicer冠脉分割实战:从DICOM导入到三维重建的完整流程(附常见问题解决)

本文详细介绍了使用3DSlicer进行冠脉分割的完整流程,从DICOM数据导入到三维重建,涵盖环境配置、视图优化、心脏区域分割及冠脉精细分割等关键步骤。针对常见问题提供实用解决方案,帮助医学影像从业者高效完成心血管结构分析,提升诊断准确性。

weixin_29271053的博客 628

ContentProvider与ContentResolver

ContentProvider与ContentResolver及ContentObserve监听

蔡林浩的博客 2016

从SolidWorks到Simulink:手把手教你用URDF文件搭建六轴机械臂仿真模型(含STL文件配置避坑)

本文详细介绍了从SolidWorks到Simulink的六轴机械臂URDF仿真全流程,包括URDF文件导出、Simscape模型生成与调试、动力学参数获取与验证等关键步骤。重点解决了STL文件配置、关节接口设置等工程化难题,帮助开发者高效构建可控制的数字孪生体。通过实战案例和优化技巧,提升机械臂仿真效率与准确性。

weixin_26812607的博客 265

ContentProvider(内容提供者),UriMatcher(Uri匹配器)

ContentProvider:内容提供者的作用 应用程序创建的数据库默认都是私有的,别的应用程序不可以访问里面的数据。 如果有需求把自己应用程序私有的数据库暴露给别的用户增删改查,就需要使用内容提供者

跳出舒适圈 1014

自动配胶机的PLC控制系统设计

我们根据自动配胶机的控制需求,编写了相应的PLC程序。PID温度控制算法的实现方面,我们采用了经典的PID控制算法,通过不断调整加热器的功率,实现对胶水混合温度的精确控制。在PLC程序中,我们编写了PID控制算法的程序模块,通过实时采集温度传感器的数据,计算温度偏差和偏差变化率,并根据PID控制算法计算出加热器的功率输出值,实现对温度的精确控制。在系统调试阶段,我们对自动配胶机的各个部分进行了详细的测试和调试,包括气路和液路的开关测试、传感器的精度测试、步进电机的位置和速度测试以及PLC程序的逻辑测试等。

lagougongzuoshi的博客 1227

yolov11添加P2小目标检测头与添加P6超大目标检测头

本文介绍了YOLO目标检测模型中上下采样的原理及应用。上采样通过插值算法放大特征图,YOLO通常采用最近邻插值;下采样则通过带步长的卷积缩小特征图提取高层语义特征。文章详细阐述了这两种操作在YOLO中的实现方式、结构特点及对称性问题,指出下采样后会使用C3模块进行特征整合,上采样后通过concat抑制分割感。此外,还分析了不同分辨率特征图适合检测不同尺寸目标的原因,并提出添加4倍小目标检测头的方法,即对上采样后的特征进行concat和C3模块处理。最后给出了YOLOv5原模型结构和添加4倍检测头后的结构对比

m0_64661770的博客 820

Android APP完整基础教程(08)四大组件-ContentProvider

1 ContentProvider相关概念 ContentProvider是跨应用数据交换的标准,主要用于在许可的情况下获取其他应用的数据。为了更好的了解ContentProvider,我们需要了解URI和MIME。 1.1 URI(Uniform Resource Identifier)统一资源标识符 这个标识符主要用于唯一标识 ContentProvider和其中的数据。URI 为系统中的每一个资源赋予一个名字。 1.1.1 URI格式解读 每一个 ContentProvider 都拥有一个公

wangdsh的博客 3112

脑机接口中的视觉信号解码:原理、技术与应用

脑机接口中的视觉信号解码:原理、技术与应用​ ,人工智能,计算机视觉,大模型,AI,脑机接口(Brain - Computer Interface,BCI)作为一种革命性的技术,致力于搭建人脑与外部设备之间的直接通信桥梁,绕开传统的神经肌肉输出通路。其核心目标是解读大脑活动产生的信号,从而实现对外部设备的精准控制或信息交互。在众多脑机接口研究方向中,视觉信号解码因其独特的优势和广泛的应用前景,吸引了大量科研人员的关注。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 20万+

【Android高级架构师系统学习文章】Android基础-ContentProvider全方位解析(系列篇4)(1)

/ 设置ContentProvider的唯一标识// UriMatcher类使用:在ContentProvider 中注册URIstatic {// 初始化// 若URI资源路径 = content://cn.scu.myprovider/user ,则返回注册码User_Code// 若URI资源路径 = content://cn.scu.myprovider/job ,则返回注册码Job_Code。

2401_84538474的博客 928

k8s问题处理

执行 kubectl api-resources 报错如下。

weixin_40548182的博客 944

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

传智播客--ContentProvider共享数据和ContentResolver的使用,Uri,UriMatcher和ContentUris

这几天的学习,都是Android很实用的地方.所以练习起来,特别的有精神.今天主要学习的是Android中,统一数据访问的方式,和一些为了方便开发.由系统提供的一些实用的工具类.如:用于匹配Uri的UriMatcher和获取Uri路径后面ID的ContentUris.这在工作中一定会用到的,所以要认真的终结.1.使用ContentProvider共享数据1)继承 Conte

图画hadoop 1930

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

ContentProvider共享数据和ContentResolver的使用,Uri,UriMatcher和ContentUris

    这几天的学习,都是Android很实用的地方.所以练习起来,特别的有精神.今天主要学习的是Android中,统一数据访问的方式,和一些为了方便开发.由系统提供的一些实用的工具类.如:用于匹配Uri的UriMatcher和获取Uri路径后面ID的ContentUris.这在工作中一定会用到的,所以要认真的终结.1.使用ContentProvider共享数据 1)继承 ContentPro...

人生就是一种修行 265

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Uri、UriMatcher、ContentUris类介绍

因为Uri代表了要操作的数据,所以我们很经常需要解析Uri,并从Uri中获取数据。Android系统提供了两个用于操作Uri的工具类,分别为UriMatcher 和ContentUris 。掌握它们的使用,会便于我们的开发工作。 UriMatcher类用于匹配Uri,它的用法如下: 首先第一步把你需要匹配Uri路径全部给注册上,如下: //常量UriMatcher.NO_MATC

fangxinglian的专栏 581

Android中ContentProvider和Uri用法

一、使用ContentProvider(内容提供者)共享数据 ContentProvider在android中的作用是对外共享数据,也就是说你可以通过ContentProvider把应用中的数据共享给其他应用访问,其他应用可以通过ContentProvider对你应用中的数据进行添删改查。关于数据共享,以前我们学习过文件操作模式,知道通过指定文件的操作模式为Context.MODE_WORL

ruanjianxiong的专栏 8172

android之ContentProvider和Uri详解

一、使用ContentProvider(内容提供者)共享数据 在android中ContentProvider的作用是对外共享数据,就是说可以通过ContentProvider把应用中的数据共享给其他应用访问,其他应用可以通过ContentProvider对你应用中的数据进行添删改查。就像我们手机的通话记录,我没要查看某个通话时间,这是需要调用通话记录中的数据,此时就该用到了ContentPro

肿菜的博客 5720

04. ContentProvider基础介绍

它是应用程序间通信组件,他用于在不同应用间共享数据(也即:IPC跨进程通信),借助ContentProvider提供的接口,应用可以将内部的数据暴露给外部应用,或者从其它应用中读取共享的数据。Broadcast和这个也是通信的,他们两者有什么区别呢?Broadcast更像是发送一个任务,让你去处理和完成。ContentProvider更像是把自己当作数据库暴露出去。:用于简化对URI的ID添加和解析操作UriMatcher。

qq_35829566的博客 919

ContentProvider和Uri详解

十二、ContentProvider和Uri详解 一、使用ContentProvider(内容提供者)共享数据 ContentProvider在android中的作用是对外共享数据,也就是说你可以通过ContentProvider把应用中的数据共享给其他应用访问,其他应用可以通过ContentProvider对你应用中的数据进行添删改查。关于数据共享,以前我们学习过文件操作模式,知道通过指定文

zlb_lover的博客 895

Android - 内容提供者 ContentProvider

屏蔽细节提供统一访问接口,只需要利用URI来访问,简化了应用间数据共享的操作(多为数据库)。ContentProvider的onCreate()运行在主线程,而query()、insert()、delete()、update()是运行在子线程中,调用这些函数并不会阻塞ContentProvider所在进程的主线程,但是可能会阻塞调用者所在进程的主线程(系统让调用线程等待异步操作完成),因此需要在子线程中访问ContentProvider。

HugMua的博客 930

ContentProvider与ContentResolver使用

使用ContentProvider共享数据: 当应用继承ContentProvider类,并重写该类用于提供数据和存储数据的方法,就可以向其他应用共享其数据。虽然使用其他方法也可以对外共享数据,但数据访问方式会因数据存储的方式而不同,如:采用文件方式对外共享数据,需要进行文件操作读写数据;采用sharedpreferences共享数据,需要使用sharedpreferences...

FLY_THINK2012的博客 102
上一篇: android.intent.action.MAIN 和android.intent.category.LAUNCHER
下一篇: Android之用PopupWindow实现弹出菜单
PiCheeng
博客等级 码龄15年 3粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值