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
相关推荐
Dicky-_-zhang4 小时前
系统容量规划与压测实战:从1万到100万QPS的科学扩容
java·jvm
Dicky-_-zhang9 小时前
消息队列Kafka/RocketMQ选型与高可用架构:从单体到100万TPS的演进
java·jvm
晨曦中的暮雨9 小时前
4.15腾讯 CSIG云服务产线 一面
java·开发语言
fake_ss1989 小时前
AI时代学习全栈项目开发的新范式
java·人工智能·学习·架构·个人开发·学习方法
茉莉玫瑰花茶10 小时前
工作流的常见模式 [ 1 ]
java·服务器·前端
未若君雅裁10 小时前
Spring AOP、日志切面与声明式事务原理
java·后端·spring
No8g攻城狮10 小时前
【人大金仓】wsl2+ubuntu22.04安装人大金仓数据库V9
java·数据库·spring boot·非关系型数据库
xiaoerbuyu123311 小时前
开源Java 邮箱 基于SpringBoot+Vue前后端分离的电子邮件
java·开发语言
C+++Python11 小时前
C++ 进阶学习完整指南
java·c++·学习