2016-08-26 2 views
-1

У меня есть приложение, в котором я беру данные из API (некоторые точки на карте со свойствами, такими как описания, lan, lat и список фотографий) из-за автономного режима. Я не уверен, следует ли использовать sharedPreferences или некоторый okHttp-кеш (или некоторую базу данных ORM). SharedPref хорош для небольших значений, а не для списка объектов. У вас есть предложения/рекомендации?SharedPreferences/Cache using retrofit

Благодарности

+0

, пожалуйста, посмотрите на это, это поможет вам https://caster.io/episodes/retrofit-2-offline-cache/ – sushildlh

ответ

0

Храните ваши данные в БД с URIs изображения. Храните изображения в кеше памяти и извлекайте их из своего URI. Модернизация не предусматривает поддержку загрузки изображений из сети сама по себе. Если вы не хотите углубляться в все это, вы можете использовать Glide или Picasso.

Picasso сохраняет полное изображение и может быть изменен в зависимости от времени загрузки. Glide кэширует изображения после изменения размера. Посмотрите, что подходит вашему делу.

Сохранение и возврат изображений непосредственно из базы данных потребует слишком большой обработки и замедления загрузки изображений, особенно если вам нужны большие изображения. Для получения дополнительной информации ознакомьтесь с примечаниями разработчиков на Caching Bitmaps и Display Bitmaps Efficiently.

+0

Что такое проблема с OP? Он хочет получить информацию о Share preferce и кэше OKHTTP. – sushildlh

+0

@sushildlh Picasso использует OkHttp и Shared Preferences не рекомендуется для хранения изображений. Я пытался дать общий ответ. – Imdad

+0

Кэш OkHttp используется для хранения изображений. будете ли вы когда-либо использовать кеш OKHTTP? – sushildlh

0

Я бы посоветовал вам использовать кэш ответов, если вам нужен ответ только для отображения. Retrofit обеспечивает хороший и удобный метод кэширования ответов, вы можете использовать Interceptors для ответа на кеш. надеюсь, что вы используете retrofit последняя версия 2.1.0. проверьте this ссылку, чтобы узнать больше.

Если вы хотите выполнить некоторые операции, такие как маркировка фаворитов и т. Д., Вы можете перейти к базе данных.