Intereting Posts
Существуют ли соглашения о том, как назвать ресурсы? Как захватить экран как можно быстрее через adb? Mock Retrofit Наблюдаемый <T> ответ в тестах Android Unit Предупреждение: для запроса без сеанса требуется токен, но отсутствует идентификатор приложения или токен клиента Как предотвратить изменение пользовательских представлений из-за изменений ориентации экрана RecyclerView сохраняет / восстанавливает состояние между действиями Исходный код для Android-приложений? Расположение базы данных sqlite на устройстве Android – Как оживить переход активности при нажатии кнопки возврата по умолчанию Можно ли использовать API android для перехвата и чтения сообщений оператора (сообщения USSD)? Функция масштабирования и перетаскивания в SurfaceView Выравнивать текстовый центр с помощью android Приложение Android запоминает свои данные после удаления и переустановки Что такое Dalvik и dalvik-cache? Большие промежутки между элементами RecyclerView при прокрутке вниз

Android: CursorLoader, LoaderManager, SQLite

Попытка обновить мое старое приложение, в котором некоторые методы устарели. Я узнал, что если я хочу работать с ListView, который показывает данные из db, я должен использовать LoaderManager + CursorLoader. CursorLoader работает с контент-провайдерами. Итак, для каждой таблицы в моем db я должен создать контент-провайдера сейчас? Почему я должен ? Насколько я знаю, контент-провайдеры используются для обмена некоторой информацией db с другими приложениями, но мое приложение не предоставляет никакой информации. Могу ли я использовать CursorLoader без поставщиков контента?

Solutions Collecting From Web of "Android: CursorLoader, LoaderManager, SQLite"

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

Как отметил Барак, можно реализовать CursorLoader без поставщиков контента, расширив AsyncTaskLoader<Cursor> . Тем не менее, большинство учебных пособий и пример кода используют ContentProvider s, и похоже, что команда Android поощряет ее использование. Это также намного менее сложно, чем реализация собственного класса.

Тем не менее, если вы действительно не хотите использовать контент-провайдеров, Dianne Hackborn (один из разработчиков платформы Android, также известный как «hackbod» здесь, на SO) предлагает написать собственный загрузчик, который использует ваш класс базы данных вместо контента поставщик. Самый простой способ – просто взять исходный CursorLoader класса CursorLoader из библиотеки совместимости и заменить запросы поставщиков запросами на свой собственный класс-помощник db.

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

Просто загляните в образцы из файла android sdk для LoaderCustomSupport.java в образцах и демонстрационных файлах совместимости.