Android Notepad Uri Объяснение - PullRequest
       13

Android Notepad Uri Объяснение

1 голос
/ 19 декабря 2010

В демоверсии Android Notes принимает URI:

    sUriMatcher.addURI(NotePad.AUTHORITY, "notes", NOTES);
    sUriMatcher.addURI(NotePad.AUTHORITY, "notes/#", NOTE_ID);

Где разница между заметками и заметками / # заключается в том, что заметки / # возвращают заметку с идентификатором #.

Однако метод managedQuery (), используемый для получения данных от поставщика контента, имеет следующие параметры:

Parameters
uri The URI of the content provider to query.
projection  List of columns to return.
selection   SQL WHERE clause.
selectionArgs   The arguments to selection, if any ?s are pesent
sortOrder   SQL ORDER BY clause.

Итак, есть ли какая-то конкретная причина для принятия проектного решения о предоставлении URI для этого, а не просто использования параметра выбора? Или это просто вопрос вкуса?

Спасибо.

Ответы [ 2 ]

1 голос
/ 19 декабря 2010

Я думаю, это так, что вы можете делать более сложные поиски, не усложняя ваши выборы и аргументы.Например, в моем проекте у меня есть несколько таблиц, но я использую тот же выбор и аргументы.Для фильтрации контента.Используя URI, я не интерпретирую запрос, я могу просто включить URI.Это может быть личным вкусом для начала.Но в более сложных сценариях вы цените URI.Вы также можете использовать * для сопоставления строк в том же. Вы можете с #.

1 голос
/ 19 декабря 2010

Я думаю, что это в основном дело вкуса. ИМХО, размещение идентификатора в Uri немного чище, так как вы можете сделать идентификатор непрозрачным, а не требовать от клиента знать, что он действительно представляет конкретный идентификатор строки. Например, вы можете передать ключ поиска (как в API контактов), а не конкретный идентификатор строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...