Главная » Разработка для Android » Управление файлами: сохранение эскизов в Android приложении

0

 

Теперь, когда мы рассказали, как функционирует каркас нашего REST-постав-щика, в заключение поговорим о том, как поставщик содержимого обращается с эскизами.

Выше мы рассматривали метод ContentResolver. openlnputStream, при помощи которого поставщики содержимого могут предоставлять файлы клиентам. В нашем примере с видео Finch мы используем эту функцию для предоставления изображений-эскизов. Если сохранять изображения как файлы, то можно не иметь дел с блобами базы данных, которые всегда негативно влияют на производительность приложения, и можно загружать изображения только тогда, когда клиент их запрашивает. Чтобы поставщик содержимого мог предоставлять файлы, ему необходимо переопределить метод ContentProvider. openFile, открывающий дескриптор доставляемого файла. Преобразователь содержимого занимается созданием входного потока из дескриптора файла. Простейшая реализация этого метода будет вызывать openFileHelper для активации вспомогательного механизма, позволяющего ContentResolver считывать переменную _data для загрузки того файла, на который он ссылается. Если поставщик содержимого вообще не переопределит этот метод, то система выдаст исключение Nofiles supported by provider at… (Поставщик содержимого не поддерживает никаких файлов по адресу…). В нашей простой реализации предоставляется доступ только для чтения, как показано в следующем коде:

Наконец, мы используем вариант реализации ResponseHandler, называемый FileHandler, для загрузки данных изображения-эскиза, на которое ссылается URL с YouTube. Каждый URL соответствует определенной медиазаписи. Наша фабрика FileHandlerFactory позволяет управлять файлами из кэша, сохраненными в специальном каталоге для кэша. Мы позволяем нашей фабрике определять, где сохранять файлы:

 

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

По теме:

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