我在我的应用程序中安装了一个xamarin Picasso,但是当用户注销我的应用程序时想要清除缓存。我找不到原始Picasso库有一个ClearCache方法。
答案 0 :(得分:1)
不确定您的意思是内存还是磁盘缓存,所以:
Picasso将其磁盘缓存名称定义为(PICASSO_CACHE = "picasso-cache"),因此如果您不使用自定义磁盘缓存,则可以直接删除应用程序的Picasso定义的磁盘缓存:
_picasso.Dispose(); // Done using Picasso
var cache = new File(BaseContext.ApplicationContext.CacheDir, "picasso-cache");
if (cache.Exists())
{
cache.Delete();
}
// Recreate if needed, but Picasso Build() will recreate it if it does not exist
if (!cache.Exists())
{
cache.Mkdirs();
}
LruCache
或自定义磁盘Cache
实施:var cache = new File(BaseContext.ApplicationContext.CacheDir, "picasso-cache");
if (!cache.Exists())
cache.Mkdirs();
_lruCache = new LruCache((int)Runtime.GetRuntime().MaxMemory() / 1024 * 8);
_diskLruCache = new DiskLruCache(cache, 10 * 1024 * 1024);
_picasso = new Picasso.Builder(BaseContext).MemoryCache(_lruCache).Downloader(new OkHttpDownloader(_OkHttp3Client)).IndicatorsEnabled(true).Build();
_lruCache.Clear();
_diskLruCache.Delete(); // Assumes Android style DiskLruCache