UriMatcher возвращает неправильное значение

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

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, скажем, вставки, и мой метод ContentProvider выполняет...

sUriMatcher.match(uri)

...и я получаю ответ 1 (СООБЩЕНИЯ).

Почему???


person Andrew    schedule 15.09.2010    source источник


Ответы (1)


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

sUriMatcher.addURI("myprovider", "messages/*", MESSAGES_ID);
person nobnak    schedule 10.11.2010