我有一个BackgroundImageActivity,使用Picasso加载背景图片。但是当我回到home(在BackgroundImageActivity中调用onStop())并进入此活动的另一个实例时,它应该加载另一个背景图像,但是在最初的2秒时,它仍然显示来自之前BackgroundImageActivity的图像。这是某种缓存吗?
如何清除此图像,以便每当我进入BackgroundImageActivity的新实例时,我都看不到上一张图像?
public class BackgroundImageActivity extends Activity {
@Override
public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
initBackground();
}
@Override
protected void onStop() {
super.onStop();
Picasso.invalidate(imageUrl, getApplicationContext());
}
private void initBackground() {
...
}
private void setBg(final String imageUrl, final int bg) {
this.imageUrl = imageUrl;
final RequestCreator picassoRequest = Picasso.load(imageUrl, bg).memoryPolicy(MemoryPolicy.NO_CACHE);
targetReference = new Target() {
@Override
public void onBitmapLoaded(final Bitmap bitmap, final Picasso.LoadedFrom from) {
...
}
@Override
public void onBitmapFailed(final Drawable errorDrawable) {
...
}
@Override
public void onPrepareLoad(final Drawable placeHolderDrawable) {
...
}
};
picassoRequest.placeholder(bg).error(bg).into(targetReference);
}
}
感谢!!!
答案 0 :(得分:0)
加载图片时使用这段代码。
Picasso.with(getContext()).load(data.get(pos).getFeed_thumb_image()).memoryPolicy(MemoryPolicy.NO_CACHE).into(image);
picasso将图像直接设置为ImageView而不在后台缓存。这也使app的重量也很轻。