Солнечный,
Вы можете получить доступ к данным с диска, БД или из Интернета несколькими способами.Причина, по которой вы используете или не используете ContentProvider, не в его возможностях (когда вы строите его интерфейс с данными), а в том, что вам нужно получить доступ к этим данным и то, как вы хотите, чтобы они распределялись.По сути, это больше вопрос доступа (уровень безопасности) или нет.(т. е. насколько чувствительны ваши данные и инструменты, которые к ним обращаются)
Если у вас есть несколько объектов в нескольких пакетах, обращающихся к данным, то ContentProvider может быть подходящим вариантом.Это особенно верно, если несколько пакетов являются отдельными приложениями.Что еще более важно, ContentProviders разрешают общие запросы для определенных данных.То есть приложение может запросить контакт, просто запросив контакт, а не зная, кто или что его предоставляет.
В конечном счете, принимается решение о том, к чему и как вы хотите получить доступ к вашим данным.Если вы хотите, чтобы он был локализован, и вы хотите, чтобы приложение «точно» знало, о чем оно просит, как и от кого, ContentProvider может или не может быть вашим лучшим выбором, поскольку все это может быть достигнуто с помощью локализованных классов и специальных специализированных адаптеров.чтобы удовлетворить ваши потребности.Если вам требуется несколько компонентов или программ для доступа к вашим данным, то это то, что нужно рассмотреть, но тогда возникает вопрос о том, кто запрашивает, и важен ли источник для этого лица.
Ваш следующий вопрос былчто если вы используете ContentProvider, вы должны использовать более одного.Опять же, это ваш выбор относительно того, как реализовать на основе ваших потребностей.Тем не менее, существует ряд полезных практик, которые могут дать вам некоторые рекомендации.Каждый класс должен действительно хорошо выполнять одну вещь, и она должна быть конкретной.Если ваш ContentProvider должен предоставлять данные независимо от того, что, то реализация обоих в одном и том же провайдере возможна, но может быть немного хитрой.Если ваш запросчик (обычно Activity) делает различие между диском и db, то, вероятно, это должно быть несколько провайдеров.Как бы мне не хотелось это говорить, вы должны определить, что вам нужно для этого делать, поскольку все, что мы можем сделать, - это предоставить выбор, соображения и последствия.Но эй!!Это прекрасная вещь в программировании!Вы можете выбрать то, что вам нужно, и сделать так, чтобы решение соответствовало этим потребностям, и, возможно, найти новые способы делать то, чему вы никогда не могли бы научиться.
Надеюсь, это поможет, FuzzicalLogic