Как установить источник данных для пользовательского загрузчика, если он не используется поставщиком контента? Мне нужно заполнить список из sqlite, но не хочу создавать поставщика контента для базы данных, вместо этого вы хотите использовать загрузчик для извлечения данных из базы данных. Итак, как мне установить sqlitedatabase в качестве источника данных пользовательского загрузчика?Пользовательский загрузчик без поставщика контента
ответ
два варианта:
- Используйте ContentProvider и установить
android:exported="false"
для<provider>
записи в вашем AndroidManifest.xml. - Скопируйте source code for
CursorLoader
и модифицируйте его, чтобы оформить запросSQLiteDatabase
, вместоContentResolver
. Тогда вам нужно передать только ссылку на вашу базу данных.
Обратите внимание, что для того, чтобы загрузчик требовал, вам необходимо правильно выполнять уведомления об изменении данных при изменении данных в базе данных. Обычно это делается с использованием contentResolver.notifyChange()
в URI. Для варианта 1 это должен быть URI, который вы дали CursorLoader; для варианта 2 вы можете вручную настроить ContentObserver
в своем загрузчике и сделать одно и то же уведомление, или вы могли бы реализовать другой сигнал загрузчику для выдачи запроса.
так что wud автоматически изменяет содержимое курсора при изменении содержимого в базе данных? – user3819446
это то, что я предложил ОП, но все же вариант 2 имеет мало смысла, если вы можете просто использовать не экспортированный 'ContentProvider' – pskink
@ user3819446, поэтому вы должны использовать' ContentProvider', я до сих пор не вижу причин создавать пользовательские 'Loader ' – pskink
- 1. Как реализовать загрузчик без поставщика контента?
- 2. Синхронизация с Android без поставщика контента
- 3. Можно ли использовать загрузчики без поставщика контента или комбинации?
- 4. onСоздание поставщика контента
- 5. Ресурсы поставщика контента $ NotFoundException
- 6. Динамически регистрировать поставщика контента
- 7. Исключение исключения поставщика контента
- 8. Как настроить поставщика контента для прослушивания запросов
- 9. PHP пользовательский загрузчик классов
- 10. Пользовательский загрузчик для Arduino
- 11. Пользовательский загрузчик приложений BlackBerry
- 12. «NegativeArraySizeException» - Пользовательский загрузчик классов
- 13. Linux-пользовательский загрузчик ELF
- 14. Пользовательский загрузчик не работает
- 15. Как правильно создать поставщика контента?
- 16. Понимание поставщика контента и распознаватель
- 17. Доступ к общедоступным полям поставщика контента
- 18. Android Наблюдать и уведомлять поставщика контента
- 19. Ссылка поставщика контента в базу данных
- 20. Конфигурация библиотеки поставщика контента Android Schematic?
- 21. Запуск новой темы беседы через поставщика контента
- 22. Пользовательский загрузчик классов в Java
- 23. Универсальный загрузчик изображений пользовательский ImageDownloader
- 24. пользовательский загрузчик классов для android?
- 25. Что такое пользовательский загрузчик классов
- 26. Chromecast Receiver: Пользовательский загрузчик XHR
- 27. Пользовательский загрузчик классов в Constructor.newInstance
- 28. Использование запроса суммы через поставщика контента
- 29. Предварительное загрузчик содержимого контента и изображений
- 30. Как добавить предварительный загрузчик при загрузке контента?
любая причина не использовать 'ContentProvider'? и если вам это действительно нужно, см. источники «CursorLoader» ... – pskink
@pskink просто не хочет, чтобы база данных была центральным репо, к которому также могли обращаться внешние приложения. Просто хочу, чтобы это было приватно для использования конкретного приложения. Поскольку вы не хотите, чтобы он был доступен другим приложениям, dats не хотите использовать contentprovider – user3819446
, сделайте его «экспортировано» = false, тогда «android: exported: Доступен ли поставщик контента для других приложений для использования« – pskink