Подтвердить что ты не робот

Нужен ли мне контент-провайдер с загрузчиком курсора?

У меня возникли проблемы с работой с CursorLoader.

Проблема, которую я пытаюсь решить, заключается в том, как отображать данные из моей базы данных SQLite в ListActivity. Строки списка используют настраиваемый макет, поэтому нужны данные из трех полей (все в одной таблице).

Наряду с рядом вопросов я также читал этот пост в блоге и пришел к решению о том, что мне нужно создать поставщика контента для моей базы данных.

Никогда не использовав Content Providers, прежде чем я пошел в помощь Android о том, как это сделать.

Состояние точки 1:

Вам не нужен провайдер для использования базы данных SQLite, если использование полностью в рамках вашего собственного приложения.

Итак, теперь я застрял, я не могу использовать CursorLoader без ContentProvider, и мне не рекомендуется создавать ContentProvider, если он предназначен только для моего приложения.

Я сейчас думаю, что, может быть, помощь устарела или не думала о Cursor Loaders, когда она была написана?

Так что мне нужно просто продолжать и создавать ContentProvider в любом случае или есть ли другой способ сделать это? Любой совет будет полезен!

4b9b3361

Ответ 1

После исследования я обнаружил, что ContentProvider необходим, если вы используете встроенный CursorLoader.

Как говорит wsanville, вы можете перевернуть свой собственный загрузчик, чтобы он не нуждался в ContentProvider.

Ответ 2

Короткий ответ заключается в том, что вы можете перевернуть свой собственный загрузчик, чтобы пропустить необходимость в Content Provider и напрямую взаимодействовать с базой данных SQLite. Другие уже сделали реализацию, одна из которых выполняется CommonsWare, называемой LoaderEx. Этот проект имеет класс SQLiteCursorLoader, который может вам пригодиться.

В дополнение к образцам, предоставленным вышеупомянутым проектом GitHub, вы можете проверить один из моих тестовых приложений (также на GitHub), используя Погрузчики без поставщика контента.