Google IO Rest design pattern, законченный ContentProvider и застрял сейчас

Поэтому после просмотра самого известного видео на эту тему я решил пойти с шаблоном проектирования B. Используя contentprovider с сервисом поддержки.

Шаблон дизайна google на отдыхе

В основном у меня есть следующие файлы:

  • MyProvider
  • MyDatabase
  • Mycontract

В действии я могу теперь получить contentresolver и запросить поставщика. Пока все работает отлично.

Теперь мне нужно синхронизировать мой контент-провайдер для извлечения данных из моего REST API. Таким образом, мне нужно реализовать сервис-сервис-службу и метод Rest. Изучение приложения IO Google очень помогло мне, новичок в андроиде, так что все еще сложно понять это.

Я вижу, Google использует RemoteHandlers для обработки внешних данных, я думаю, они являются классами процессора на диаграмме?

Я не понимаю, как я могу реализовать службу servicehelper + service, чтобы получить данные из сети.

  • Где я могу обратиться к сервисному помощнику?
  • Что нужно делать службе и помощнику?
  • Есть ли хорошие примеры этого точного шаблона проектирования?

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

Изменить: доступен источник проекта: https://github.com/samvdb/TracknTrace

Solutions Collecting From Web of "Google IO Rest design pattern, законченный ContentProvider и застрял сейчас"

По моему мнению, картина такова:

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

На ваши вопросы (я изменил порядок):

Где я могу обратиться к сервисному помощнику?
Я выбираю паттерн A из Vigils. В этом случае вызов зависит от вашего приложения. Вы можете инициировать обновление, когда приложение запускается, когда создается действие или когда пользователь выбирает кнопку обновления. Я бы выбрал при создании активности.

Вы выбрали шаблон B. В этом случае ясно, что поставщик контента должен инициировать обновление. Когда? Для получения новых данных: во время создания или после первого доступа для чтения. Я бы использовал время создания. Для создания, обновления, удаления после соответствующего действия в вашем поставщике контента.

Есть ли хорошие примеры этого точного шаблона проектирования?
Из моего сообщения на https://stackoverflow.com/a/8693919/734687 : единственная реализация ссылок с открытым исходным кодом, которую я знаю, доступна по адресу http://datadroid.foxykeep.com . Это библиотека, которую вы можете использовать в своем приложении. Архитектура объясняется в разделе / ​​презентация – убедитесь, что вы ее прочитали.

Что должен делать сервис-помощник?
Если вы посмотрите на слайды на слайде 19, это синглтон, который инкапсулирует вызов службы и обрабатывает асинхронные вызовы с помощью идентификаторов запросов.

Что нужно делать службе?
Услуга (слайд 17 в презентации) просто гарантирует, что действие выполняется в фоновом режиме.