我的Kindle Fire應用程序上有一個ViewPager
,每頁添加大約30個視圖。在添加位圖後,沒有引用添加到位圖中(在本地語句塊關閉後,變量會丟失)。android在回收視圖時回收視圖中的所有位圖
當他們的父視圖被刪除時,回收所有位圖的最簡單方法是什麼?我需要這樣做,因爲在刷幾頁之後,我的應用程序關閉了,因爲沒有更多內存可供分配,因爲顯然非循環位圖不會釋放它們的內存。
的思考?
我的Kindle Fire應用程序上有一個ViewPager
,每頁添加大約30個視圖。在添加位圖後,沒有引用添加到位圖中(在本地語句塊關閉後,變量會丟失)。android在回收視圖時回收視圖中的所有位圖
當他們的父視圖被刪除時,回收所有位圖的最簡單方法是什麼?我需要這樣做,因爲在刷幾頁之後,我的應用程序關閉了,因爲沒有更多內存可供分配,因爲顯然非循環位圖不會釋放它們的內存。
的思考?
你說你已經在應用程序中使用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
這不是我正在尋找的東西,但必須有一些關於刪除導致位圖自動回收的視圖。也許是因爲我有'inPurgeable = 2'? – Jacksonkr
有同樣的問題。原來我沒有從ViewGroup中移除視圖,但是回收了位圖。 –
使用'destroyItem'從你的'ViewPager'中刪除項目。 – Herry
@Herry我已經這樣做了,但看着它的接縫分配,像位圖數據永遠不會被釋放。我發現數據不會被髮布,除非您在圖像上調用回收站。這聽起來準確嗎? – Jacksonkr
有使用某些列表視圖保持圖像對象像「位圖」或「可繪製」。如果圖像很大,那麼你需要使用回收。 – Herry