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
相关推荐
Wang's Blog几秒前
Java框架快速入门: Spring Security+OAuth2之前后端分离多模块工程配置
java·spring·状态模式
亿是守候 & 亿是承诺5 分钟前
第二章 控制系统的数学模型
android
梅梅绵绵冰5 分钟前
SpringCloud网关
java·spring·spring cloud
敲代码的嘎仔13 分钟前
互动问答系统实战:两级评论模型、ES 搜索集成、Caffeine 多级缓存全记录
java·开发语言·数据库·elasticsearch·缓存·mybatis·高并发
Carson带你学Android30 分钟前
ADK for Kotlin:Google 官方 AI Agent 教程来了
android·agent·ai编程
CoderYanger32 分钟前
Java EE 进阶:2.3 JavaScript 综合案例
java·前端·javascript·css·职场和发展·java-ee·html
starzy199035 分钟前
Flink TimeWindow 详解及代码实现:从三种时间语义到滚动与滑动窗口
java·服务器·flink
重生之小比特37 分钟前
【Java SE】类和对象(一)
java·ide·intellij-idea
captain37643 分钟前
网络原理(4)-TCP
java·服务器·网络·网络协议·tcp/ip·java-ee
青山木1 小时前
枚举类DP进阶:完全平方数与零钱兑换
java·数据结构·算法·leetcode·动态规划