LoaderManager получить данные в автономном режиме, а затем в Интернете

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

И я пользуюсь Loaders с LoaderManager,

Теперь, каков правильный подход для реализации вышеупомянутого подхода с Loaders ?

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

  1. Хранение данных в контексте приложения вместо SQLite
  2. Два отдельных AsyncTaskLoaders - offlineLoader а также onlineLoader, Первый выбирает данные из базы данных SQLite и сразу же показывает их, если они есть, а второй загружает данные с внешнего сервера, записывает их в базу данных (для offlineLoader) и заменяет автономные данные.

Что я действительно хотел бы иметь:

Один загрузчик, который извлекает данные в автономном режиме и возвращает их в LoaderManager, но продолжает работать после этого и возвращает свежие онлайн-данные, когда они будут готовы. Так что он должен вернуться дважды - возможно ли это?

1 ответ

Решение

Решение заключается в использовании ContentProviderс LoaderЗагрузка данных в пользовательский интерфейс и Serviceзагружает данные и помещает их в базу данных (и уведомляет ContentProvider и остальная часть приложения, что это было изменено).

Другие вопросы по тегам