Android上传新的个人资料图片后会继续显示旧图片

时间:2014-01-16 05:07:29

标签: android

在我的Android应用程序中,用户可以上传他们的个人资料图片。它成功地在服务器上上传了新图像,但它仍然在应用程序中显示旧图像。当然,我在应用程序中通过HTTP重新加载图像,但它仍然显示旧图像。

关闭应用程序并重新启动后,它会在Android应用程序中显示上传的图像。所以,我认为它应该是像网站一样的缓存问题。我上传图片后尝试删除缓存,但仍然无法正常工作。

我已经搜索过来解决这个问题,但我找不到解决方案。

新图像是否保存在Android内存中?有人有想法吗?谢谢。

以下是代码。

public static void download(String url, ImageView imageView)
{
    Bitmap cachedImage = mImageCache.get(url);


    if(cachedImage != null)
    {
        imageView.setImageBitmap(cachedImage);
    }
    else if(cancelPotentialDownload(url, imageView))
    {
        mImageCache.clear();

        ImageDownloaderTask task = new ImageDownloaderTask(url, imageView);
        DownloadedDrawable downloadedDrawable = new DownloadedDrawable(task);
        imageView.setImageDrawable(downloadedDrawable);
        task.execute(url);
    }
}

3 个答案:

答案 0 :(得分:2)

检查您的应用程序正在使用的http客户端是否具有禁用缓存的选项。

如果您正在使用HttpURLConnection,请参阅此博客文章 - http://android-developers.blogspot.sg/2011/09/androids-http-clients.html

  

在冰淇淋三明治中,我们正在添加一个响应缓存。安装缓存后,将通过以下三种方式之一满足HTTP请求:

     

完全缓存的响应直接从本地存储提供。由于不需要进行网络连接,因此可立即获得此类响应。

     

有条件地缓存的响应必须由Web服务器验证其新鲜度。客户端发送一个请求,例如“如果自昨天以来它已改变则给我/foo.png”,并且服务器回复更新的内容或304 Not Modified状态。如果内容未更改,则不会下载!

     

从网络上提供未缓存的回复。这些响应将存储在响应缓存中以供日后使用。

答案 1 :(得分:1)

当服务器上传完成并且应用程序返回上一个活动时重新加载图像,所以@Ravind是对的,你必须在onResume()中重置ImageView,

imageView.setImage(yourImage);

答案 2 :(得分:0)

将此调用添加到您的http .enableHttpResponseCache