Любой знает, почему команда разработчиков Android внедрила Content-Resolver в качестве посредника для получения данных от Content-Provider. Почему не запрашивать данные непосредственно у контент-провайдера? Это означает, что у Content-Resolver есть специальная работа, что это такое?Content-Resolver Exploration
ответ
ContentResolver
s предназначены для создания интерфейса для приложений для безопасного доступа и/или изменения данных в других приложениях, которые выполняются в отдельных процессах. Он создает общий контракт на регистрацию, запросы, обновления, привязку и т. Д., Которые должны быть переданы между конкретным ContentProvider
и потребителем контента, который работает в другом процессе.
Создание надлежащего и долговечного интерфейса для передачи данных через процессы в Android сложное. Если вам нужно было создать свой собственный клиент IPC
, это потребует много времени, и вы, вероятно, не заметите важных аспектов реализации. «Прямое» соединение с ContentProvider
- это то, что дает ContentResolver
, но с большой сложностью, уже рассмотренной. Это удобство, чтобы иметь уже созданные и четко определенные с обеих сторон.
Это немного напоминает почтовую систему доставки. Если вы используете почтовую службу, вы отправляете адрес на кусок почты, и почтовая служба (ContentResolver
) находит подходящее место для доставки сообщения (ContentProvider
), а затем возвращает все сообщения вам в ответ на ваше сообщение. Ваша почтовая служба также будет обрабатывать новые регистрации адресов, сообщит вам, является ли адрес недопустимым, если пакет слишком велик, если получатель на целевом адресе не принимает сообщения прямо сейчас, ждет, если очередь сообщений заполнена, обрабатывает ситуации, когда транспортное средство, несущее сообщение, ломается и т. д. И в случае ContentResolver
s есть еще несколько вещей.
Вы можете обрабатывать все это самостоятельно, но когда вы думаете о реальной доставке сообщений, это не просто и намного проще использовать что-то, созданное кем-то другим. Аналогично для межпроцессного общения (IPC
) в Android. Это не идеальная аналогия, но, надеюсь, это поможет прояснить необходимость в ContentResolver
.
Почему бы не получить данные непосредственно у Content-Provider?
content:
Uri
может относиться к ContentProvider
в другом приложении. Вы не можете напрямую работать с этим ContentProvider
; требуется межпроцессная коммуникация (МПК). Следовательно, API был разработан вокруг этой модели IPC.
- 1. Metro UI Exploration
- 2. Pre/Post Increment Exploration
- 3. & -Operator/C++, Exploration
- 4. Использование ContentResolver
- 5. XML файлы Exploration и значения исполнения ордеров
- 6. Android ContentResolver аварии
- 7. Android ContentResolver длина значения
- 8. ContentResolver всегда возвращает null
- 9. Добавление mp3 в ContentResolver
- 10. Android: экземпляр ContentResolver потокобезопасен?
- 11. Журнал вызовов android ContentResolver
- 12. ContentResolver вставляет повторяющиеся данные
- 13. ContentResolver удаление нескольких
- 14. ContentResolver wrong MIME type
- 15. Проходит ContentResolver рискованно?
- 16. Получить ContentResolver в CursorAdapter
- 17. Запрос ContentResolver бросает nullpointerException
- 18. ContentResolver не находит всю музыку
- 19. Как ContentResolver находит соответствующий ContentProvider?
- 20. Android ContentResolver с данными на USB-накопителе
- 21. my Android ContentProvider не может найти ContentResolver
- 22. Android: ContentResolver не обновляет его значения
- 23. Xamarin ContentResolver/CursorLoader access in non-Activity
- 24. Удалить SMS с contentResolver слишком медленно
- 25. Android: как использовать ContentResolver в фоновом режиме
- 26. Android: contentResolver error при использовании запроса
- 27. Android: SQLite операции при использовании ContentResolver
- 28. Использование kotlin с ContentResolver вызвало IllegalArgumentException
- 29. Как создать новый плейлист с использованием ContentResolver
- 30. Android - Как сделать массовые обновления на contentresolver
напрямую? как ? – pskink
Средний человек - лучший вариант, когда мы пытаемся связаться с очень полезным и безопасным приятелем. – Androider