Ответ 1
После исследования я обнаружил, что ContentProvider необходим, если вы используете встроенный CursorLoader.
Как говорит wsanville, вы можете перевернуть свой собственный загрузчик, чтобы он не нуждался в ContentProvider.
У меня возникли проблемы с работой с CursorLoader.
Проблема, которую я пытаюсь решить, заключается в том, как отображать данные из моей базы данных SQLite в ListActivity. Строки списка используют настраиваемый макет, поэтому нужны данные из трех полей (все в одной таблице).
Наряду с рядом вопросов я также читал этот пост в блоге и пришел к решению о том, что мне нужно создать поставщика контента для моей базы данных.
Никогда не использовав Content Providers, прежде чем я пошел в помощь Android о том, как это сделать.
Состояние точки 1:
Вам не нужен провайдер для использования базы данных SQLite, если использование полностью в рамках вашего собственного приложения.
Итак, теперь я застрял, я не могу использовать CursorLoader без ContentProvider, и мне не рекомендуется создавать ContentProvider, если он предназначен только для моего приложения.
Я сейчас думаю, что, может быть, помощь устарела или не думала о Cursor Loaders, когда она была написана?
Так что мне нужно просто продолжать и создавать ContentProvider в любом случае или есть ли другой способ сделать это? Любой совет будет полезен!
После исследования я обнаружил, что ContentProvider необходим, если вы используете встроенный CursorLoader.
Как говорит wsanville, вы можете перевернуть свой собственный загрузчик, чтобы он не нуждался в ContentProvider.
Короткий ответ заключается в том, что вы можете перевернуть свой собственный загрузчик, чтобы пропустить необходимость в Content Provider и напрямую взаимодействовать с базой данных SQLite. Другие уже сделали реализацию, одна из которых выполняется CommonsWare, называемой LoaderEx. Этот проект имеет класс SQLiteCursorLoader, который может вам пригодиться.
В дополнение к образцам, предоставленным вышеупомянутым проектом GitHub, вы можете проверить один из моих тестовых приложений (также на GitHub), используя Погрузчики без поставщика контента.
создание ContentProvider довольно просто. Достаточно легко, чтобы он не стоял на вашем пути использования CursorLoader. Вот краткий пример их использования вместе с простым ContentProvider: http://responsiveandroid.com/2012/03/19/using-an-android-cursor-loader-with-a-content-provider.html