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
相关推荐
thefool1122664 分钟前
翻转二叉树
java
喜欢打篮球的普通人1 小时前
LLVM Backend Lowering 从入门到实战:把 IR 变成机器码的完整链路
android·java·数据库
FL16238631291 小时前
室内易燃物识别易燃评估室内易燃程度识别分割数据集labelme格式1015张85类别
java·服务器·前端
jufeng13072 小时前
【系列:TDengine 工业物联网实战:从零搭起可运行系统 · 第 8 篇】
java·spring boot·时序数据库·tdengine
程序员贺加贝2 小时前
轻制造SaaS的生产闭环建模-BOM工单领料报工质检与入库
java·设计模式·架构
敲个大西瓜3 小时前
Spring Could Alibaba 核心面试题
java·后端·spring
骇客野人4 小时前
Java SSO 统一认证方案
java·开发语言
萝卜er4 小时前
BroadcastReceiver 静态注册与动态注册-《Android深水区(七)》
android
START_GAME4 小时前
MSSQL$SQL2016
java·服务器·前端
ydd1001004 小时前
字符串转换整数
java