Шаблон дизайна Google IO Rest, Законченный ContentProvider и застрял сейчас
Поэтому после просмотра самого известного видео по этой теме я решил использовать шаблон проектирования B. Использование контент-провайдера с servicehelper.
В основном у меня есть следующие файлы:
- MyProvider
- MyDatabase
- Mycontract
Теперь я могу получить Contentresolver и запросить провайдера. Пока все отлично работает.
Теперь мне нужно синхронизировать контент-провайдер для получения данных из моего REST API. Таким образом, мне нужно реализовать сервис вспомогательный сервис и метод отдыха. Изучение приложения Google IO мне очень помогло, я новичок с Android, так что все еще трудно понять это.
Я вижу, что Google использует RemoteHandlers для обработки внешних данных, я думаю, это классы Processor на диаграмме?
Что я не понимаю, так это как я могу реализовать сервисную часть servicehelper + для получения данных из сети.
- Куда мне обратиться в сервисную службу?
- что конкретно нужно сделать сервису и помощнику?
- Есть ли хорошие примеры этого точного шаблона дизайна?
Я прочитал несколько тем в стеке об этом, предлагая разные методы. Я нашел пример, который объявляет restprovider, а затем myProvider должен расширить его. Мне не нравятся эти решения, и я хочу следовать этой структурированной схеме проектирования. Надеюсь, вы, ребята, сможете мне помочь!
1 ответ
В моем понимании картина такова:
- Не показывать пустое действие и загружать контент в фоновом режиме. Когда загрузка не удалась, вы ничего не можете отобразить.
- Вместо этого отображайте данные, хранящиеся в БД, доступные через поставщика контента и адаптера - это гарантирует, что пользователь всегда видит контент
- В фоновом режиме получать новые данные, как только данные на телефоне, активность автоматически обновляется через адаптер
На ваши вопросы (я изменил порядок):
Куда мне обратиться в сервисную службу?
Я выбираю шаблон A из Vigils talk. В этом случае звонок зависит от вашей заявки. Вы можете запустить обновление при запуске приложения, при создании действия или когда пользователь выбирает кнопку обновления. Я бы выбрал при создании деятельности.
Вы выбрали шаблон B. В этом случае ясно, что поставщик контента должен инициировать обновление. Когда? Для получения новых данных: во время создания или после первого доступа для чтения. Я бы использовал время создания. Для создания, обновления, удаления после соответствующего действия в вашем контент-провайдере.
Есть ли хорошие примеры этого точного шаблона проектирования?
Из моего поста на /questions/34713530/nuzhen-primer-proekta-android-rest-client-v-kotorom-realizovan-shablon-realizatsii-virgil-dobjanschi-rest/34713550#34713550: единственная из известных мне ссылок на реализацию с открытым исходным кодом доступна по http://datadroid.foxykeep.com/. Это библиотека, которую вы можете использовать в своем собственном приложении. Архитектура объясняется в разделе / презентация - обязательно прочитайте ее.
что конкретно должен делать сервисный помощник?
Если вы посмотрите на слайды на слайде 19, это одноэлементный пакет, который инкапсулирует вызов службы и обрабатывает асинхронные вызовы с помощью идентификаторов запросов.
что конкретно должен делать сервис?
Сервис (слайд 17 в презентации) просто гарантирует, что действие выполняется в фоновом режиме.