ОК, прежде всего, поставщик контента будет использоваться тогда и только тогда, когда вы хотите использовать одни и те же данные через несколько приложений.Вы все еще можете использовать его, если хотите внедрить его в свое приложение.Теперь по определению ContentProvider «Поставщики контента управляют доступом к структурированному набору данных. Они инкапсулируют данные и предоставляют механизмы для определения безопасности данных».(Согласно Руководствам для разработчиков Android)
Другими словами, это как новый уровень абстракции, который вы добавляете к своим данным, назначая нового посредника, который будет запрашивать все, о чем вы его проситеделать (читать, писать, обновлять базу данных, файлы или веб-сервисы).И этот посредник доступен не только для вас, но и для других приложений, если для тега android:exported
установлено значение true в <provider>
в файле манифеста.
ContentProviderВам нужно реализовать:
- Контракт: в основном класс с открытыми статическими переменными с именами таблиц и полями информации для этих таблиц.
- Модель данных: обычно база данныхв SQLite, но вы можете реализовать его также с помощью сторонних библиотек, таких как SugarORM, GreenDao, Retrofit, локальные файлы и т. д.).
- Ваш пользовательский ContentProvider: Расширьте ContentProvider и установите здесь вызовы для вашей модели данных.
Это хорошее руководство по созданию собственного ContentProvider: http://www.grokkingandroid.com/android-tutorial-writing-your-own-content-provider/
Есть также несколько библиотек, которые помогут вам автоматически создать ContentProvider (я нахожу это удивительным, потому что вам нужно всего 10 минут, чтобы настроить все, вместо того, чтобы создавать свой собственный ContentProvider с нуля, который может занять несколько дней).Мой личный фаворит - схема: https://github.com/SimonVT/schematic
Надеюсь, это поможет.С уважением!