2014-01-16 85 views
1

在我的Android應用程序中,用戶可以上傳他們的個人資料圖片。它成功地在服務器上上傳了新的圖像,但它仍然在應用程序中顯示舊圖像。當然,我在應用程序中通過HTTP重新加載圖像,但它仍然顯示舊圖像。Android在上傳新的個人資料圖片後繼續顯示舊圖片

當我關閉應用程序並重新開始後,它會在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); 
    } 
} 
+0

吃了你重新設置圖像到哪裏它顯示? – Pietu1998

+0

調用onresume中的重新設置圖像方法() –

回答

1
當服務器上載完成,應用回到以前的活動,這樣@Ravind是正確的,你必須的onResume()重置ImageView的

重裝圖片,

+0

謝謝。你可以檢查我的代碼嗎? – Jake

2

檢查您的應用程序使用的http客戶端是否有禁用緩存的選項。

如果您使用HttpURLConnection看到這篇博客文章 - http://android-developers.blogspot.sg/2011/09/androids-http-clients.html

在Ice Cream Sandwich的,我們要添加一個響應緩存。在安裝緩存的情況下,HTTP請求將通過以下三種方式之一得到滿足:

完全緩存的響應直接從本地存儲提供。因爲不需要建立網絡連接,所以這種響應立即可用。

有條件緩存的響應必須通過網絡服務器驗證其新鮮度。客戶端發送「Give me /foo.png」(如果它自昨天起更改)之類的請求,並且服務器將使用更新的內容或304 Not Modified狀態進行回覆。如果內容保持不變,則不會被下載!

未緩存的響應從網上提供。這些響應將在稍後存儲在響應緩存中。

相關問題