gpt4 book ai didi

java - android.content.UriMatcher 的含义

转载 作者:IT老高 更新时间:2023-10-28 23:38:45 28 4
gpt4 key购买 nike

android.content.UriMatcher

中的Uri Matcher是什么

如何使用它?有人可以解释一下以下三行代码的含义吗?

  uriMatcher = new UriMatcher(UriMatcher.NO_MATCH);
uriMatcher.addURI(PROVIDER_NAME, "cte", uriCode);
uriMatcher.addURI(PROVIDER_NAME, "cte/*", uriCode);
int res = uriMatcher.match(uri);

最佳答案

当您编写 ContentProvider 或其他需要响应多个不同 URI 的类时,UriMatcher 是一个方便的类。在您的示例中,用户可以使用以下 URI 查询您的提供程序:

myprovider://cte

myprovider://cte/somestring

当您构造一个 UriMatcher 时,您需要为每个 URI 设置单独的代码(不仅仅是您的示例中的“uriCode”)。我通常将我的 UriMatcher 实例设为静态,并在静态构造函数中添加 URI:

private static final int CTE_ALL = 1;
private static final int CTE_FIND = 2;
private static final UriMatcher uriMatcher = new UriMatcher(UriMatcher.NO_MATCH);
static {
uriMatcher.addURI(PROVIDER_NAME, "cte", CTE_ALL);
uriMatcher.addURI(PROVIDER_NAME, "cte/*", CTE_FIND);
}

然后在您的 ContentProvider 中,您将在查询方法中执行类似的操作:

Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {
int res = uriMatcher.match(uri);
switch (res) {
case CTE_ALL:
//TODO create a results Cursor with all the CTE results
break;
case CTE_FIND:
//TODO create a results Cursor with the single CTE requested
break;
}
return results;
}

关于java - android.content.UriMatcher 的含义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26901644/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com