Главная » Разработка для Android » ПРИМЕР КОДА: ДИНАМИЧЕСКОЕ ПОСТРОЕНИЕ СПИСКА И КЭШИРОВАНИЕ ВИДЕОКОНТЕНТА YOUTUBE в Android приложении

0

 

Для демонстрации описанной архитектуры мы покажем приложение Finch для построения списков видеороликов, которое позволяет пользователю искать видео с мобильного устройства при помощи API с передачей состояния представления по адресу http://gdata.youtube.com. Написанный нами код рассчитан на непостоянство сетевого соединения в мобильном окружении. Приложение заранее сохраняет пользовательские данные, чтобы с ним можно было работать и тогда, когда сетевое соединение отсутствует. Это может означать, что приложение будет отображать устаревшие результаты, сохраненные на локальном устройстве, но тем не менее будет работать.

Когда пользователь выполняет запрос, приложение пытается получить в ответ на этот запрос наиболее актуальные результаты с YouTube. Если приложение сможет успешно загрузить новые результаты, то оно сотрет все хранящиеся на устройстве результаты, которые старше одной недели. Если бы программа просто вслепую сбрасывала все старые результаты еще до того, как совершить запрос на обновление информации, то пользователь мог бы увидеть пустой экран – и приложение оставалось бы бесполезным до тех пор, пока не возобновится связь с сетью. На рис. 13.2 показан результат запроса по ключевому слову dogs («собаки»). При нажатии кнопки «Ввод» в поисковом поле или при нажатии кнопки обновления система порождает новый запрос.

Рис. 13.2. Пример приложения Finch-видео

В нашем приложении имеется кэширующий поставщик содержимого, который запрашивает через API YouTube метаданные видео YouTube. Результаты запроса кэшируются в таблице SQL под названием video, в методе query поставщика содержимого. Поставщик содержимого использует фреймворк Finch для инициирования асинхронных REST-запросов. Пользовательский интерфейс состоит из активности, показанной на рис. 13.2, списка с поисковым полем и кнопки для обновления содержимого. Список динамически обновляется после уведомления поставщика содержимого о поступлении новых данных. Всякий раз, когда пользователь вводит поисковый запрос, а затем нажимает «Ввод», активность инициирует запрос к FinchVideoContentProvider, содержащий соответствующий уникальный идентификатор ресурса. Сейчас мы объясним этот пример детально.

Источник: Android. Программирование на Java для нового поколения мобильных устройств

По теме:

  • Комментарии