Par*_*n M 12 memory android caching picasso
我试图通过Android编码清除Picasso的缓存.
任何人都可以帮我解决这个问题..?
我尝试使用以下代码,但这在我的情况下没用:
Picasso.with(getActivity()).load(data.get(pos).getFeed_thumb_image()).skipMemoryCache().into(image);
Run Code Online (Sandbox Code Playgroud)
Moh*_*med 32
请改用:
Picasso.with(getContext()).load(data.get(pos).getFeed_thumb_image()).memoryPolicy(MemoryPolicy.NO_CACHE).into(image);
Run Code Online (Sandbox Code Playgroud)
Mur*_*ain 11
像这样删除Picasso的缓存.
public class Clear {
public static void clearCache (Picasso p) {
p.cache.clear();
}
}
Run Code Online (Sandbox Code Playgroud)
此util类可以为您清除缓存.你只需要调用它:
Clear.clearCache(Picasso.with(context));
Run Code Online (Sandbox Code Playgroud)
编辑:
Clear类必须在包中:
package com.squareup.picasso;
Run Code Online (Sandbox Code Playgroud)
因为无法从该包外部访问缓存.就像在这个答案:https://stackoverflow.com/a/23544650/4585226
如果你正在尝试通过加载的Json图像(从DB)尝试清除networkCache一个更好的结果.
Picasso.with(context).load(uri).networkPolicy(NetworkPolicy.NO_CACHE)
.memoryPolicy(MemoryPolicy.NO_CACHE)
.placeholder(R.drawable.bv_logo_default).stableKey(id)
.into(viewImage_imageView);
Run Code Online (Sandbox Code Playgroud)
如果想用给定的 Uri 刷新图像,而不是清除完整的缓存。试试这个Picasso.with(context).invalidate(uri);它在内部从毕加索维护的缓存中删除密钥。
摘自 Picasso.java
/** * Invalidate all memory cached images for the specified {@code uri}. * * @see #invalidate(String) * @see #invalidate(File) */ public void invalidate(Uri uri) { if (uri == null) { throw new IllegalArgumentException("uri == null"); } cache.clearKeyUri(uri.toString()); }
| 归档时间: |
|
| 查看次数: |
36003 次 |
| 最近记录: |