2014-02-11 48 views
2

文件我初始化畢加索這樣的:的Android畢加索庫只在內存中緩存

Picasso picasso = new Picasso.Builder(this) 
       .downloader(new OkHttpDownloader(this)) 
       .build(); 
picasso.setDebugging(true); 

不知何故,如果圖像只得到保存到內存緩存,從來沒有磁盤緩存。關閉應用程序並重新打開它會導致圖像重新下載。

任何想法?

+0

您是否需要自定義下載器?如果你跳過這個行爲,這是什麼行爲? – f2prateek

+0

同樣的行爲。似乎你必須爲此提供一個自定義的實現。我現在終於恢復了Universal Image Loader。 –

+1

Salut Vlad,你有沒有想過?我有完全一樣的問題。 – Radu

回答

0

,因爲它似乎你沒有任何特別的事情來添加,創建畢加索象下面這樣:

Picasso picasso = Picasso.with(this); 

它重用而不是每次(這是特別危險的,如果你創建一個新的實例」從Adapter.getView()重新調用它)。因此,只有在確實需要定製一些行爲時才使用Picasso.Builder,例如提供不同的Downloader或Listener,如果您這樣做,則不要通過Adapter.getView()實現來實現。

你並不需要提供OkHttpDownloader,它已經默認提供的,如果你有在classpath OkHttp庫。檢查您下載的URL是否沒有受到HTTP重定向(如HTTP 301或HTTP 302)的影響,畢加索在某些情況下無法處理它,至少在當前版本(2.2.0)之前是如此。

除此之外,你的代碼看起來很好,應該工作。祝你好運!