2012-05-04 88 views
1

我的Kindle Fire應用程序上有一個ViewPager,每頁添加大約30個視圖。在添加位圖後,沒有引用添加到位圖中(在本地語句塊關閉後,變量會丟失)。android在回收視圖時回收視圖中的所有位圖

當他們的父視圖被刪除時,回收所有位圖的最簡單方法是什麼?我需要這樣做,因爲在刷幾頁之後,我的應用程序關閉了,因爲沒有更多內存可供分配,因爲顯然非循環位圖不會釋放它們的內存。

的思考?

+0

使用'destroyItem'從你的'ViewPager'中刪除項目。 – Herry

+0

@Herry我已經這樣做了,但看着它的接縫分配,像位圖數據永遠不會被釋放。我發現數據不會被髮布,除非您在圖像上調用回收站。這聽起來準確嗎? – Jacksonkr

+0

有使用某些列表視圖保持圖像對象像「位圖」或「可繪製」。如果圖像很大,那麼你需要使用回收。 – Herry

回答

5

你說你已經在應用程序中使用Viewpager,然後確保它在PagerAdapter適配器中使用了下面的方法。

@Override 
     public void destroyItem(ViewGroup container, int position, Object object) { 
      // TODO Auto-generated method stub 
      ((ViewPager)container).removeView((View)object); 
     } 

這種方法刪除頁面未在當前屏幕並在此方法

@Override 
     public Object instantiateItem(ViewGroup container, int position) { 
} 

在此方法中負荷圖像顯示高效,對於您可以參考Android開發者網站。 displaying bitmaps

+0

這不是我正在尋找的東西,但必須有一些關於刪除導致位圖自動回收的視圖。也許是因爲我有'inPurgeable = 2'? – Jacksonkr

+0

有同樣的問題。原來我沒有從ViewGroup中移除視圖,但是回收了位圖。 –