Ответ 1
Он возвращает Content Resolver.
Что такое Content Resolver?
Content Resolver - это единственный глобальный экземпляр вашего приложения, который обеспечивает доступ к вашим (и другим приложениям) контент-провайдерам. Content Resolver ведет себя точно так же, как следует из его названия: он принимает запросы от клиентов и решает эти запросы, направляя их поставщику контента с особым полномочием. Для этого в Content Resolver хранится сопоставление с полномочиями поставщиков контента. Эта конструкция важна, поскольку она позволяет использовать простые и безопасные средства доступа к поставщикам контента других приложений.
Content Resolver включает методы CRUD (создавать, читать, обновлять, удалять), соответствующие абстрактным методам (insert, delete, query, update) в классе Content Provider. Content Resolver не знает реализации поставщиков контента, с которыми он взаимодействует (и не должен знать); каждому методу передается URI, который задает контент-провайдер для взаимодействия с.
Что такое поставщик контента?
В то время как Content Resolver обеспечивает абстракцию от поставщиков Content Content, поставщики контента предоставляют абстрагирование от базового источника данных (т.е. a SQLite database
). Они предоставляют механизмы для определения безопасности данных (т.е. Путем обеспечения разрешений на чтение и запись) и предлагают стандартный интерфейс, который соединяет данные в одном процессе с кодом, запущенным в другом процессе.
Поставщики контента предоставляют интерфейс для публикации и потребления данных, основанный на простой модели адресации URI, используя content:// schema
. Они позволяют отделить слои приложений от базовых слоев данных, что делает ваш агент-источник данных агностиком, абстрагируя исходный источник данных.
Источник - androiddesignpatterns