android - UriMatcher Uri *和#区别

标签 android uri android-contentprovider

我正在尝试根据几个示例实现我自己的 ContentProvider,但我对 UriMAtcher 中的不同方法感到困惑。例如: JavaDoc# 显示它,如下所示:

sURIMatcher.addURI("contacts", "people", PEOPLE);
sURIMatcher.addURI("contacts", "people/#", PEOPLE_ID);
sURIMatcher.addURI("contacts", "people/#/phones", PEOPLE_PHONES);
sURIMatcher.addURI("contacts", "people/#/phones/#", PEOPLE_PHONES_ID);

但在 Google 的“iosched”引用应用中,它使用 * 如下:

matcher.addURI(authority, "rooms", ROOMS);
matcher.addURI(authority, "rooms/*", ROOMS_ID);
matcher.addURI(authority, "rooms/*/sessions", ROOMS_ID_SESSIONS);

谁能解释这两种方法的区别?

最佳答案

引用官方文档:http://developer.android.com/reference/android/content/UriMatcher.html .

public void addURI (String authority, String path, int code)

在 API 级别 1 中添加 添加一个要匹配的URI,以及匹配到这个URI时返回的代码。 URI节点可以是完全匹配的字符串,也可以是匹配任意文本的token“*”,也可以是只匹配数字的token“#”。

关于android - UriMatcher Uri *和#区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29430737/

相关文章:

android - 内存内容提供者

android - FCM 推送通知 Android 在后台接收 2 个通知

android - AWS MobileHub : Rename Android/iOS sample project

返回 Activity 后 Android 服务挂起

web-services - URI 命名空间和 WSDL 文件

android - ContentProvider 内部是如何工作的

java - 在 TextView 中显示评论/在编辑 View 中接受评论以在测验应用程序中使用

Android Uri.Builder 在方案后使用 "/"而不是 "//"

Android SipProfile Uri UDP 端口错误

android - ContentProvider 调用原子? onPause保存,加载OnActivityCreated,旧数据