UriMatcher Uri *和#区别

UriMatcher Uri * and # difference

我正在尝试根据几个示例实现我自己的 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时的代码为return。 URI节点可以是完全匹配的字符串,也可以是匹配任何文本的token“*”,也可以是只匹配数字的token“#”。