UriMatcher возвращает неправильное значение - PullRequest
1 голос
/ 15 сентября 2010

У меня два Уриса. Предположим, они:

content://myprovider/messages
content://myprovider/messages/#

В моем расширенном ContentProvider я объявил следующее:

    private static final int MESSAGES = 1;
    private static final int MESSAGES_ID = 2;

    private static final UriMatcher sUriMatcher;

    static {
        sUriMatcher = new UriMatcher(UriMatcher.NO_MATCH);
        sUriMatcher.addURI("myprovider", "messages", MESSAGES);
        sUriMatcher.addURI("myprovider", "messages/#", MESSAGES_ID);
    }

Когда я использую ...

content://myprovider/messages/#

... Uri при вызове любого метода ContentProvider, скажем insert, и мой метод ContentProvider выполняет ...

sUriMatcher.match(uri)

... и я возвращаюсь 1 (СООБЩЕНИЯ).

Почему ???

1 Ответ

1 голос
/ 10 ноября 2010

Если вы хотите получить MESSAGES_ID, URI должен быть написан как content://myprovider/messages/12345, или вы должны добавить шаблон для MESSAGES_ID, например:

sUriMatcher.addURI("myprovider", "messages/*", MESSAGES_ID);
...