2012-08-22 101 views
2

我有一個活動,它在其中放置了一個包含Gallery的片段。當我開始另一項活動時,基本上,我想釋放充滿畫廊位圖的內存。內存泄漏,位圖,碎片

我的片段動態插入這樣的:

FragmentManager fragmentManager = getSupportFragmentManager(); 
    FragmentTransaction fragmentTransaction = fragmentManager 
      .beginTransaction(); 

    if (_promoFragment == null) { 
     _promoFragment = new TabletPromoFragment(); 
    } 

    fragmentTransaction.replace(_singlePageContainerId, _promoFragment); 

    fragmentTransaction.commit(); 

我甚至稱之爲_promoFragment.onDestroyView在活動的onPause,但MAT仍然顯示我有保存成位圖的引用圖庫對象。

你能提出什麼建議?

p.s.如果它更清楚,我可以發佈MAT報告。

回答

0
+0

我已經使用過 - 我使用的是https://github.com/thest1/LazyList/blob/master/src/com/fedorvlasov /lazylist/ImageLoader.java以非常方式顯示位圖。我對這一行有個疑問:private Map cache = Collections.synchronizedMap( new LinkedHashMap (10,1.5f,true));不過,我認爲我的問題是,片段視圖不會在我離開第一個活動時被取消 – midnight

0

您在參考文獻中遇到問題,並且對象緊貼記憶方式超出了您的片段生命週期&活動。

Check out my reply on this post

你必須確保沒有提及離開時,你摧毀一個片段/活動後面。請務必清除所有的使用情況和歷史記錄,以便Android的垃圾收集器成功處理它