Android - ImageLoader 不会从 URL 重新检索图像

标签 android imageview android-studio android-imageview universal-image-loader

这是名为 PicURL 的 Activity 页面。我希望应用程序在调用此 Activity 页面时从 URL 检索图像。

问题是这个 Activity 页面只会检索图像一次(第一次调用 Activity 时。)

例如,我打开这个 Activity ,我从 URL 中得到了图片“A”。然后我用图片“B”覆盖图片“A”。我重新打开此 Activity ,但我仍然看到应该是图片“B”的图片“A”。

 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);

    }

为我糟糕的英语道歉。 感谢您的帮助!

最佳答案

似乎您启用了 ImageLoader 的缓存:

optionBuilder.cacheInMemory(true);
optionBuilder.cacheOnDisk(true);

您需要将这些选项设置为false。 禁用缓存将使您的应用每次都重新加载来自互联网的所有图像,这对您或您的用户来说可能是不希望的。

您可以启用缓存,但会为您真正想要重新加载的 URL 生成一个随机查询字符串,例如,

String randomString = String.format("?random=%d", System.currentTimeMillis());
String imageUri = "http://abcdef.com/pic1.png"+randomString;
imageLoader.displayImage(imageUri, imageView);

关于Android - ImageLoader 不会从 URL 重新检索图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25102681/

相关文章:

android - 为什么我的应用程序将自己注册为浏览器?

android - 尝试旋转图像时程序停止

android - LinearLayout 中的RelativeLayout 无法正确包装内容

Android Studio 3.5.2 找不到 USB 连接设备(但通过 adb 终端找到)

android-studio - Android 不启动我的模拟器,它说它已经在运行或删除某个目录中的文件

php - 如何将变量从 php 发送到 Android 应用程序?

android - 有没有一种简单的方法可以在 Android View 的顶部和底部添加边框?

java - Android:问题图像分辨率

android - 错误 :No such property: zipAlignEnabled for class: com. android.build.gradle.internal.variant.ApplicationVariantData

javascript - 移动Web应用能否获取Android设备标识信息?