Лучшие исполнители для одного и того же URL, разные изображения с Glide V4 - PullRequest
0 голосов
/ 18 мая 2018

В моем приложении я получаю изображение со своего сервера в Imageview.Я использовал этот код:

 try {
            GlideApp.with(mContext)
                    .load(myCard.url)
                    .placeholder(R.drawable.no_connection)
                    .apply(new RequestOptions().centerCrop())
                    .diskCacheStrategy(DiskCacheStrategy.NONE)
                    .skipMemoryCache(true)
                    .into(arkafon);
        } catch (Exception e) {
            e.printStackTrace();
        }

, он работает, но каждый раз, когда приложение загружает изображения как новые, так что использование интернета увеличивается.Это возможность проверить, изменилось ли изображение, приложение должно загрузить новое.в противном случае, если в изображении НЕТ изменений, приложение должно использовать загруженное до него изображение.

Ответы [ 2 ]

0 голосов
/ 18 мая 2018

выглядит некрасиво, но это мое решение

import java.util.Calendar;
import java.util.Date;

Calendar cal = Calendar.getInstance();
        cal.setTime(new Date());
        try {
            GlideApp.with(mContext)
                    .load(myCard.url)
                    .placeholder(R.drawable.no_connection)
                    .apply(new RequestOptions().centerCrop())
                    .signature(new ObjectKey(String.valueOf(cal.get(Calendar.MONTH))))
                    .into(arkafon);
        } catch (Exception e) { 
        }

оно будет обновлять все изображения ежемесячно, если вы хотите раньше, вы можете использовать Calendar.WEEK_OF_YEAR

0 голосов
/ 18 мая 2018

Если вы хотите загрузить новое изображение с тем же именем, что и ранее загруженный файл, то у вас должно быть одно поле, которое будет определять уникальность изображения.Я привожу вам пример для этого: предположим, что у вас есть изображение профиля с URL-адресом, поэтому вам нужен еще один флаг, который сообщает нам о последней обновленной дате и времени, если у вас есть эта уникальность, чем вы можете загрузить изображение на основе этого с помощью приведенного ниже кода. В приведенном ниже примере у меня lastModified - уникальные поля.

Glide.with(this)
        .load(avatarFile)
        .diskCacheStrategy(DiskCacheStrategy.RESULT)
        .signature(new StringSignature(String.valueOf(avatarFile.lastModified())))
        .into(ivProfile);
...