这是名为PicURL的活动页面。我希望应用程序在调用此活动页面时从URL检索图像。
问题是此活动页面只会检索一次图像(第一次调用活动。)
例如,我打开了这个活动,我得到了照片" A"来自网址。然后我覆盖了图片" A"与图片" B"。我重新打开这个活动,但我仍然有照片" A"这应该是图片" B"。
public class PicURL extends Activity {
ImageView imageView;
private ImageLoader imageLoader;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pic_url);
imageLoader = ImageLoader.getInstance();
imageView = (ImageView) findViewById(R.id.imageView);
DisplayImageOptions.Builder optionBuilder = new DisplayImageOptions.Builder();
optionBuilder.showImageForEmptyUri(R.drawable.ic_launcher);
optionBuilder.showImageOnFail(R.drawable.ic_launcher);
optionBuilder.cacheInMemory(true);
optionBuilder.cacheOnDisk(true);
DisplayImageOptions options = optionBuilder.build();
ImageLoaderConfiguration.Builder loaderBuilder =
new ImageLoaderConfiguration.Builder(getApplicationContext());
loaderBuilder.defaultDisplayImageOptions(options);
loaderBuilder.diskCacheExtraOptions(400, 400, null);
ImageLoaderConfiguration config = loaderBuilder.build();
if (!imageLoader.isInited()) {
ImageLoader.getInstance().init(config);
} // Checked if ImageLoader has been initialed or not.
String imageUri = "http://abcdef.com/pic1.png"; //Where the app retrieve the image from the link
imageLoader.displayImage(imageUri, imageView);
}
为我可怜的英语道歉。 谢谢你的帮助!
答案 0 :(得分:1)
好像你已经启用了ImageLoader的缓存:
optionBuilder.cacheInMemory(true);
optionBuilder.cacheOnDisk(true);
您需要将这些选项设置为false
。
禁用缓存会使您的应用每次都重新加载来自互联网的每张图片,这对您或您的用户来说可能是不受欢迎的。
您可以启用缓存,但会为您真正想要重新加载的网址生成随机查询字符串,例如
String randomString = String.format("?random=%d", System.currentTimeMillis());
String imageUri = "http://abcdef.com/pic1.png"+randomString;
imageLoader.displayImage(imageUri, imageView);