Android 开发 - UriMatcher(一个 URI 分类器)

UriMatcher

1、基本介绍

UriMatcher 是一个 URI 分类器,它能根据传给它的 URI,快速判断这个 URI 属于哪一类,然后返回一个对应的 code

2、基本使用
java 复制代码
String authority = "com.my.test";

UriMatcher uriMatcher = new UriMatcher(UriMatcher.NO_MATCH);

uriMatcher.addURI(authority, "user", 1);
uriMatcher.addURI(authority, "user/#", 2);
uriMatcher.addURI(authority, "user/*", 3);

int result1 = uriMatcher.match(Uri.parse("content://com.my.test/user"));
int result2 = uriMatcher.match(Uri.parse("content://com.my.test/user/101"));
int result3 = uriMatcher.match(Uri.parse("content://com.my.test/user/tom"));
int result4 = uriMatcher.match(Uri.parse("content://com.my.test"));
int result5 = uriMatcher.match(Uri.parse("test content"));
int result6 = uriMatcher.match(Uri.parse("content://"));

System.out.println("result1: " + result1);
System.out.println("result2: " + result2);
System.out.println("result3: " + result3);
System.out.println("result4: " + result4);
System.out.println("result5: " + result5);
System.out.println("result6: " + result6);
复制代码
# 输出结果

result1: 1
result2: 2
result3: 3
result4: -1
result5: -1
result6: -1
java 复制代码
String authority = "com.my.test";

UriMatcher uriMatcher = new UriMatcher(100);

uriMatcher.addURI(authority, "user", 1);
uriMatcher.addURI(authority, "user/#", 2);
uriMatcher.addURI(authority, "user/*", 3);

int result1 = uriMatcher.match(Uri.parse("content://com.my.test/user"));
int result2 = uriMatcher.match(Uri.parse("content://com.my.test/user/101"));
int result3 = uriMatcher.match(Uri.parse("content://com.my.test/user/tom"));
int result4 = uriMatcher.match(Uri.parse("content://com.my.test"));
int result5 = uriMatcher.match(Uri.parse("test content"));
int result6 = uriMatcher.match(Uri.parse("content://"));

System.out.println("result1: " + result1);
System.out.println("result2: " + result2);
System.out.println("result3: " + result3);
System.out.println("result4: " + result4);
System.out.println("result5: " + result5);
System.out.println("result6: " + result6);
复制代码
# 输出结果

result1: 1
result2: 2
result3: 3
result4: -1
result5: -1
result6: -1
相关推荐
砍材农夫3 小时前
spring-ai 第四多模态API
java·人工智能·spring
她说..6 小时前
Java 对象相关高频面试题
java·开发语言·spring·java-ee
庞轩px6 小时前
深入理解 sleep() 与 wait():从基础到监视器队列
java·开发语言·线程··wait·sleep·监视器
皮皮林5517 小时前
面试官:ZSet 的底层实现是什么?
java
码云数智-大飞8 小时前
C++ RAII机制:资源管理的“自动化”哲学
java·服务器·php
2601_949816588 小时前
Spring+Quartz实现定时任务的配置方法
java
计算机毕设指导69 小时前
基于SpringBoot校园学生健康监测管理系统【源码文末联系】
java·spring boot·后端·spring·tomcat·maven·intellij-idea
mysuking9 小时前
springboot与springcloud对应版本
java·spring boot·spring cloud
希望永不加班9 小时前
SpringBoot 数据库连接池配置(HikariCP)最佳实践
java·数据库·spring boot·后端·spring
迈巴赫车主9 小时前
蓝桥杯3500阶乘求和java
java·开发语言·数据结构·职场和发展·蓝桥杯