我试图基于几个示例来实现自己的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/

10-08 23:57