android.content.UriMatcher 的含义

2024-02-13

Uri Matcher 是什么android.content.UriMatcher

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

  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

or

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;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

android.content.UriMatcher 的含义 的相关文章

  • Android NDK 支持区域设置吗?

    我真正想做的就是使用格式化日期strftime x 以正确的顺序 在大多数平台上调用setlocale 足够 在 Android 上 我不断收到 美国日期 那么 Android 不支持语言环境吗 No setlocale and strft
  • 如何在 Spring 中使 @PropertyResource 优先于任何其他 application.properties ?

    我正在尝试在类路径之外添加外部配置属性资源 它应该覆盖任何现有的属性 但以下方法不起作用 SpringBootApplication PropertySource d app properties public class MyClass
  • Android 无法解析日期异常

    当尝试解析发送到我的 Android 客户端的日期字符串时 我得到一个无法解析的日期 这是例外 java text ParseException 无法解析的日期 2018 09 18T00 00 00Z 位于 偏移量 19 在 java t
  • Java Applet 中的 Apache FOP - 未找到数据的 ImagePreloader

    我正在研究成熟商业产品中的一个问题 简而言之 我们使用 Apache POI 库的一部分来读取 Word DOC 或 DOCX 文件 并将其转换为 XSL FO 以便我们可以进行标记替换 然后 我们使用嵌入到 Java 程序中的 FOP 将
  • 如何在 ant 中为 junit 测试设置 file.encoding?

    我还没有完全完成file encoding 和 ant https stackoverflow com questions 1339352 how do i set dfile encoding within ants build xml
  • 如何在.NET中使用java.util.zip.Deflater解压缩放气流?

    之后我有一个转储java util zip Deflater 可以确认它是有效的 因为 Java 的Inflater打开它很好 并且需要在 NET中打开它 byte content ReadSample sampleName var inp
  • Jetpack Compose 中复选框中的透明复选标记

    在我的 Compose 应用程序中 我需要创建一个圆形复选框 我已经通过下面的代码实现了这一点 Composable fun CircleCheckBox isChecked Boolean modifier Modifier Modifi
  • 使用 Elastic Beanstalk 进行 Logback

    我在使用 Elastic Beanstalk 记录应用程序日志时遇到问题 我正在 AWS Elastic Beanstalk 上的 Tomcat 8 5 with Corretto 11 running on 64bit Amazon Li
  • Android 4.4 Kitkat 自定义视图操作栏未填充整个宽度

    我试图拥有一个带有自定义视图的简单操作栏 但我得到以下结果 为了演示 我创建了一个带有黄色背景颜色的简单 xml 它应该占据整个宽度 这是 XML
  • 轻松的反应

    我有一个与这里描述的类似的案例 动态更改RESTEasy服务返回类型 https stackoverflow com questions 3786781 dynamically change resteasy service return
  • Java Swing - 如何禁用 JPanel?

    我有一些JComponents on a JPanel我想在按下 开始 按钮时禁用所有这些组件 目前 我通过以下方式显式禁用所有组件 component1 setEnabled false 但是有什么办法可以一次性禁用所有组件吗 我尝试禁用
  • 将 JavaFX FXML 对象分组在一起

    非常具有描述性和信息性的答案将从我这里获得价值 50 声望的赏金 我正在 JavaFX 中开发一个应用程序 对于视图 我使用 FXML
  • 使用 HtmlUnit 定位弹出窗口

    我正在构建一个登录网站并抓取一些数据的程序 登录表单是一个弹出窗口 所以我需要访问这个www betexplorer com网站 在页面的右上角有一个登录链接 写着 登录 我单击该链接 然后出现登录弹出表单 我能够找到顶部的登录链接 但找不
  • android系统用户和linux root用户有什么区别

    当我将手机连接到电脑并使用adb shell与我的手机通信并输入的命令ps命令输出当前在我的手机上运行的进程信息 我发现有两个特殊用户 一个是root 另一个是system 据我所知 Android是基于linux的 所以root用户是最大
  • java 中的蓝牙 (J2SE)

    我是蓝牙新手 这就是我想做的事情 我想获取连接到我的电脑上的蓝牙的设备信息并将该信息写入文件中 我应该使用哪个 api 以及如何实现 我遇到了 bluecove 但经过几次搜索 我发现 bluecove 不能在 64 位电脑上运行 我现在应
  • partitioningBy 必须生成一个包含 true 和 false 条目的映射吗?

    The 分区依据 https docs oracle com javase 8 docs api java util stream Collectors html partitioningBy java util function Pred
  • JetPack Compose - 卡中行中的weight() 不起作用

    创建 Android 应用程序时 我将一些可组合项放在卡片的一行中 如下所示 但它没有按我的预期工作 我添加 weight 1f 的可组合项不再显示 data class Test val title String val text Str
  • 如何模拟ARM处理器运行环境并加载Linux内核模块?

    我尝试加载我的vmlinux into gdb并使用 ARM 内核模拟器 但我不明白为什么我会得到Undefined target command sim 这是外壳输出 arm eabi gdb vmlinux GNU gdb GDB 7
  • Spring RESTful控制器方法改进建议

    我是 Spring REST 和 Hibernate 的新手 也就是说 我尝试组合一个企业级控制器方法 我计划将其用作未来开发的模式 您认为可以通过哪些方法来改进 我确信有很多 RequestMapping value user metho
  • Java 和/C++ 在多线程方面的差异

    我读过一些提示 多线程实现很大程度上取决于您正在使用的目标操作系统 操作系统最终提供了多线程能力 比如Linux有POSIX标准实现 而windows32有另一种方式 但我想知道编程语言水平的主要不同 C似乎为同步提供了更多选择 例如互斥锁

随机推荐

  • 是否可以使用 Node.js 创建桌面应用程序? [复制]

    这个问题在这里已经有答案了 我已经使用node js 创建了一个应用程序 我很想知道是否可以将客户端 js html css 和服务器端打包到一个独立的应用程序 不需要浏览器 中 https github com rogerwang nod
  • 如何使用 vc++ 找出当前线程的堆栈上剩余多少空间?

    我使用的是VC 2012 我希望能够知道当前线程中有多少堆栈内存可用 快速搜索指向使用 malloc h 和 stackavail 函数 但它在 Visual C 2012 中不存在 我如何以另一种方式实现这一点 有问题的例子是这样的 in
  • 在“in”子句的存储过程中使用MySQL用户定义变量

    当将逗号分隔的 id 字符串作为 varchar 发送到 MySQL 存储过程时 我无法使用该字符串作为 IN 子句的一部分来返回正确的结果 该字符串被截断为小数 并且仅使用第一个值 我以为我可以通过准备然后执行该语句来解决这个问题 但这仍
  • 如何(从命令行)自动安装适用于 C++、.NET、C# 等的 Visual Studio 构建工具构建环境

    注 我已经读过如何在不安装 IDE 的情况下在构建服务器上安装 VS2017 版本的 msbuild https stackoverflow com questions 42696948 how can i install the vs20
  • 未选中复选框时如何删除相邻单元格的数据?

    我想以此作为序言 因为我没有接受过这一专业领域的培训 因此我帮助设置了该表的初始代码 我设置了工作表 以便在 A 列和 C 列中添加复选框 并在 B 和 D 中添加时间戳 但我也希望这样 如果需要取消选中复选框 则数据将被删除 A B C
  • 如何从 Django 的会话中获取登录用户的 uid?

    我已经使用以下方法实现了注册 登录 身份验证系统这个 Django 指南 https docs djangoproject com en 1 3 topics auth 但是 我如何从我的视图访问用户的信息 以便将用户的信息发送到模板文件
  • 简单的客户端/服务器、TCP/IP 加密消息流、SSL

    编写一个小型 TCP IP 客户端服务器应用程序 基本上它会创建一个服务器 然后您可以创建几个不同的客户端并设置一些聊天会话 我想知道是否有任何方法可以使用标准 net 库合并某种形式的加密 m mainSocket new Socket
  • 从 HTTPS 页面到 HTTP URL 的 AJAX 请求

    我有一种情况 我需要从一个 HTTPS 页面到另一个不安全的页面 在不同的域上 执行 AJAX 请求 我们已经实施了 CORS 策略 并且在我们的网站上使用 HTTPS 之前它运行良好 有什么办法可以让这个工作吗 根据 W3 的说法 由于
  • 将文件和目录连同提交历史记录一起移动到子目录中

    如何将目录和文件以及提交历史记录移动到子目录 例如 源码目录结构 project x files sub dirs 目标目录结构 project x p q files sub dirs 要添加到布马古利斯 https stackoverf
  • .Net lib来控制远程GDB [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 您可以对遗留代码库做哪些对提高质量影响最大的事情?

    当您在遗留代码库中工作时 随着时间的推移 什么会对提高代码库的质量产生最大的影响 删除未使用的代码 删除重复的代码 添加单元测试以提高覆盖率较低的测试覆盖率 跨文件创建一致的格式 更新第三方软件 减少静态分析工具 即 Findbugs 生成
  • 具有 CSS 和 HTML 的水平家谱 - 反向

    我在网上搜索并找到了一个很好的家谱示例在代码笔这里 http codepen io anon pen bdLeNe 我想要同样的东西 但旋转了180度 我想以 16 名成员开始我的家谱 并从左到右降序 16 8 4 2 1 如何通过使用 编
  • del 语句与调用 __delitem__ 总是 100% 相同吗?

    a something iterable object in python del a 1 Is del a 1 总是一样a delitem 1 是Python吗del语句定义为调用 delitem method The del陈述 htt
  • 向上按钮调用父 Activity 的 OnDestroy

    首先 我想澄清一些事情 我正在努力使用的按钮不是back按钮 我指的是up home应用程序顶部的 ActionBar Toolbar 中的按钮 而不是底部的 Android 按钮 有几个posts https stackoverflow
  • 将特定 TensorFlow 变量恢复到特定层(按名称恢复)

    假设我训练了一个 TensorFlow 模型并保存了它 现在有一个不同的模型 并且我想将保存的模型中的一些权重用于模型中的某些层 它们具有相同的形状 现在 我能够找到如何从模型中保存特定变量 具有特定名称 但我无法找到任何按名称恢复这些变量
  • 如何将挂起函数作为显式参数传递给协程构建器?

    我正在调查launch协程构建器将协程代码作为block suspend CoroutineScope gt Unit 我们通常将代码作为 lambda 传递 但是 我想知道如何将此函数作为显式参数传递给启动函数 coroutineScop
  • 如何使用gson处理动态响应数据? (json 到 java 对象)

    这是 Json 用户列表 response result users name ABC age 20 gender F name cbd age 23 gender M 有时会像这样返回 response result
  • 使用 Tornado 广播消息

    我有一个发送消息的应用程序 该消息应该广播到每个当前连接的客户端 假设客户数量可能达到数千 如何在不阻塞的情况下实现这个广播逻辑 我认为会阻止的示例代码 clients class Broadcaster tornado websocket
  • Arm Cortex A9交叉编译奇怪的浮点行为

    我正在尝试将更大的应用程序从 x86 移植到 arm cortex a9 但在交叉编译应用程序时 我遇到了像 modf 这样的浮点函数的奇怪分段错误 其他 libc 函数似乎处理浮点数错误 但不会崩溃 见下文 所以我尝试了这个小测试程序 它
  • android.content.UriMatcher 的含义

    Uri Matcher 是什么android content UriMatcher 如何使用它 有人可以解释一下以下三行代码的含义吗 uriMatcher new UriMatcher UriMatcher NO MATCH uriMatc