В чем преимущество использования Content Provider по сравнению с базой данных sqlite в Android?
Я прочитал, что поставщик контента для обмена данными с другим приложением.
В моем приложении я не использовал контент-провайдера, так как мне не нужно делиться своими данными с другим приложением. Поэтому я использовал базу данных sqlite в одиночку. Для изменения базового набора данных я использовал loadermanager с принудительной загрузкой содержимого для мгновенной загрузки.
Это плохая практика? Все ли приложения используют контент-провайдера? Также я собираюсь разработать новое приложение, и в этом я собираюсь использовать syncadapter, должен ли я использовать тот же подход, что и раньше, или мне нужно использовать контент-провайдера?(Помните: в этом случае я также не хочу поделиться своими данными с другим приложением)
2 ответа
В документации сказано:
Вам не нужно разрабатывать собственного провайдера, если вы не собираетесь делиться своими данными с другими приложениями. Тем не менее, вам нужен собственный провайдер для предоставления пользовательских поисковых запросов в вашем собственном приложении.
То, что реализация загрузчика курсора по умолчанию требует поставщика контента, является ошибкой проектирования. Тем не менее, вы можете легко написать свой собственный загрузчик курсора, который не нуждается в поставщике контента.
То, что для адаптера синхронизации требуется поставщик контента, является ошибкой проектирования. Однако даже сама документация Android показывает, как написать заглушку, которая на самом деле ничего не делает.
Поставщики контента не всегда необходимы, если вы не хотите делиться данными с другими приложениями, но помимо этого поставщики контента полезны, так как теперь вам не нужно работать со своим собственным загрузчиком. Помимо этого, у него много хороших моментов, отсюда вы можете прочитать мнения разных людей.
Но, по моему мнению, если вы создаете приложение, которое, вероятно, со временем будет развиваться, то вам следует использовать Content Provider, поскольку он поможет вам сделать что-то в данный момент.