Xamarin - как сбросить кеш изображений для конкретного изображения - PullRequest
0 голосов
/ 18 октября 2018

В своем приложении Xamarin я загружаю новое изображение «профиля пользователя» на сервер, затем пытаюсь обновить изображение новой версией изображения (заметил, что изображение URI остается прежним).

Xamarin предоставляет кэш изображений, мне нужно сделать его недействительным, чтобы принудительно перезагрузить изображение с сервера.Но похоже, что кэш изображений не может быть признан недействительным!Я не нахожу решения!

Я пробовал несколько решений, но не нашел пути!Даже когда я перезапускаю приложение, я получаю старую версию изображения.

Я пробую некоторые вещи, подобные этой:

(MediaImageSource as UriImageSource) .CacheValidity = new TimeSpan (-1);FFImageLoading.Forms.CachedImage.InvalidateCache (MediaImageSource, FFImageLoading.Cache.CacheType.All, true);FFImageLoading.ImageService.Instance.InvalidateCacheAsync (FFImageLoading.Cache.CacheType.All);

Но ничего не работает, любая идея приветствуется?Thx

1 Ответ

0 голосов
/ 18 октября 2018

Я делаю следующее:

// this.Img is the FFImageLoading.CachedImage in my view
var source = this.Img.Source as FileImageSource;

// Reset cache using the global instance (the key is the file name, I assume it is the uri for UriImageSource)
await ImageService.Instance.InvalidateCacheEntryAsync( source.File, CacheType.All, true );

// Reassign the image source (since the binding has not changed per se, the UI may miss the change otherwise)
this.Img.Source = new FileImageSource(...);

Это перезагружает изображение, и FFImageLoading даже делает хорошую анимацию затухания при его изменении.

...