Связь с сервером
Для реализации такой же структуры в приложении создан простой Java-объект — класс «Place», содержащий все перечисленные поля. Rates — список валют. Каждый элемент списка представлен объектом со следующими полями:§ Sell — стоимость продажи валюты; Location — географические координаты места. Объект содержит два поля: Date — дата обновления стоимостей; Timetable — расписание работы; Point — название… Читать ещё >
Связь с сервером (реферат, курсовая, диплом, контрольная)
Данные с сервера приходят в формате JSON в виде списка объектов, каждый из которых содержит информацию об одном месте на карте. Структура такого объекта предусматривает следующие атрибуты:
- · Bank — название банка;
- · Point — название филиала;
- · Address — адрес места;
- · Timetable — расписание работы;
- · Rates — список валют. Каждый элемент списка представлен объектом со следующими полями:
- § Sell — стоимость продажи валюты;
- § Buy — стоимость покупки;
- § Date — дата обновления стоимостей;
- · Location — географические координаты места. Объект содержит два поля:
- § Latitude — широта;
- § Longitude — долгота.
Для реализации такой же структуры в приложении создан простой Java-объект — класс «Place», содержащий все перечисленные поля.
За работу с сервером в приложении будут отвечать два инструмента: библиотека Retrofit и наследник IntentService — класс «WebService». С помощью Retrofit осуществляется собственно сетевой запрос, а IntentService выступает в качестве компонента, в котором этот запрос происходит, и обеспечивает асинхронность.
Таким образом, в создаваемой архитектуре операция «LaunchActivity» является граничным объектом, а службу можно считать сущностным объектом Server на робастной диаграмме. Для облегчения класса «LaunchActivity» можно создать класс-прослойку «DataController», который будет запускать IntentService, а также принимать и обрабатывать сигналы от него. В дальнейшем этот же контроллер будет использоваться в основной операции приложения для обновления данных.
Запуск службы осуществляется посредством класса «Intent», а обратную связь будет обеспечивать класс «ServiceResultReceiver». Метод «onReceiveResult» данного класса выполняется при вызове метода «send», который имеет следующую сигнатуру: «void send (int resultCode, Bundle resultData)», где resultCode — это код результата, а resultData — данные. Первый метод будет реализован в контроллере, а при запуске службы в отправляемом намерении будет указано, что сам контроллер является адресатом результатов работы IntentService. Служба же, при получении данных от сервера будет вызывать метод send, указывая в аргументе «resultData» успешность получения информации, а во втором — полученные данные при их наличии. Контроллер, в зависимости от кода результата, будет либо передавать данные операции через метод «onPlacesReceived (Arrayist places)», либо вызывать её метод «onSyncronizationError ()» показывающий сообщение об ошибке.