Не для того, чтобы воспитывать что-то старое, но у меня возникают проблемы с реализацией этого отношения один-ко-многим ... Если я буду следовать подходу Стефана:
content://<authority>/comments/#<post-id>
Что если я позже захочу добавить URI, чтобы получить конкретный комментарий по идентификатору?
content://<authority>/comments/#<comment-id>
Вышеуказанное создаст совпадение с предыдущим URI.
В моем случае я попытался решить эту проблему с помощью
content://<authority>/posts/comments/#<post-id>
Однако это решение может вызвать проблемы. Например, если я хочу загрузить курсор, используя оба:
content://<authority>/comments/ (all comments)
content://<authority>/posts/comments/#<post-id> (comments by post)
и вставьте комментарий, используя:
content://<authority>/comments
Не все пользователи ContentProvider будут уведомлены, поскольку шаблон URI не совпадает.
Чтобы решить эту проблему, я удостоверяюсь, что мой ContentProvider вызывает notifyChange с добавленным идентификатором к ОБОИ URI «get all» И URI «get by post id» ... это всего лишь одно решение.
Есть ли какие-либо недостатки в реализации этого способа? Оглядываясь назад, вероятно, было бы проще просто положиться на пользователя, устанавливающего внешний ключ в строке выбора запроса ContentProvider ... но, как и Pierr, я хотел реализовать его как один URI.