Glide Cache не сохраняется после закрытия приложения

Я отслеживаю свои веб-звонки с Чарльзом.

У меня есть папка кеша, изменяющая GlideModule, переопределяя applyOption(...) следующим образом:

    @Override
public void applyOptions(Context context, GlideBuilder builder) {
    builder.setDiskCache(
            new InternalCacheDiskCacheFactory(context, "/media/", 1500000)
    );
}

Затем я загружаю свои изображения Glide, и кеш работает нормально, пока я нахожусь в приложении. Вот пример:

Glide.with(this)
            .load("http://www.wired.com/wp-content/uploads/2015/09/google-logo.jpg")
            .into(mImageView);

Только первый вызов совершает веб-вызов, а затем использует кеш для его извлечения. Однако, если я убью приложение, а затем перезапущу его, вместо того, чтобы продолжать использовать кеш, приложение сделает новый веб-вызов. Разве кеш не должен быть постоянным во внутренней памяти?


person Magnas    schedule 10.02.2016    source источник
comment
futurestud.io/blog/glide-caching-basics   -  person Reaz Murshed    schedule 10.02.2016
comment
уже читал это, поведение по умолчанию кэширует все версии изображений, и это так, поскольку кеш работает нормально, пока я в приложении.   -  person Magnas    schedule 10.02.2016
comment
@Magnas, ты нашел решение?   -  person Naroju    schedule 09.07.2016


Ответы (4)


Увеличьте diskCacheSize и посмотрите, что произойдет. 1500000 — это 1,5 мб, может содержать ограниченное количество картинок (в зависимости от каждого размера). Когда ограничение будет достигнуто, старые кэшированные изображения будут заменены новыми.

Таким образом, независимо от того, насколько велик diskCacheSize, при его превышении старые кэшированные изображения будут заменены новыми.

Также обратите внимание, что помимо «дискового кеша», Glide хранит изображения в памяти до тех пор, пока не будут выполнены некоторые условия для их освобождения (отключение активности, нехватка памяти, ...). Вот почему он не загружает некэшированные изображения снова, пока приложение живо, потому что обращается к ним через память.

person navid    schedule 25.01.2020

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

если вы сталкиваетесь только с проблемой, то, по моему мнению, вам следует использовать Picasso для обработки изображений, если ваша существующая система не зависит от гильдии.

person Arpan24x7    schedule 29.01.2020

вы можете загрузить изображение и сохранить его во внутреннем хранилище вашего приложения, используя sqllite, и загрузить изображение оттуда, передав локальный URL-адрес в «.load()».

Но здесь каждый раз, когда ваше скольжение получает вызов, он загружает изображение напрямую, используя URL-адрес, потому что вы передаете URL-адрес в методе «.load ()», он не только сделает веб-вызов после перезапуска приложения, он сделает веб-вызов очень скользящим по времени получение вызова в приложении, например, если вы используете его в представлении переработчика.

person subrata sharma    schedule 30.01.2020

person    schedule
comment
он не работает. когда я уничтожаю приложение и снова запускаю его загрузку.. - person Ganesh MB; 10.03.2021