2011-05-13 22 views
0

我在一段時間後遇到OutOfMemory異常,同時用位圖膨脹XML視圖。Android,一個不可能的內存泄漏,如何用eclipse找到它?

打開多次使用許多位圖但始終從XML膨脹的活動後會出現問題。

我用MAT檢查內存。 第一個問題:我不保留我的任何內存活動 - 如果我篩選我的活動的名稱,我得到對象= 0,但在一些活動 我可以看到RetainedHeap> = 302.這是否表示一個泄漏 ?

之後,我嘗試比較我在不同時間點的記憶,以查看已創建的對象。但我找不到任何重要的東西。

我的問題是:如果我不記住活動記憶什麼可能是泄漏原因? 使用什麼工具/方法來找到它?

問候,

奧利維爾

回答

0

嘗試當活動被破壞的位圖的所有引用設置爲null。這可能不會回答你的問題,但它應該可以解決你的問題。

0
  1. 如果你有大的源圖像,然後縮放它們的目標尺寸:Strange out of memory issue while loading an image to a Bitmap object

  2. 位圖緩存(而不是可繪!!)在一個List(或地圖),並將它們保存在onRetainNonConfigurationInstance()http://developer.android.com/resources/articles/faster-screen-orientation-change.html

+0

感謝您的回答,我緩存drawable,但我清除了回調引用,當我摧毀我的活動。我認爲最好是緩存drawable,因爲否則每次你將一個位圖設置爲一個你創建一個新的drawable的imageView。我的問題更多,我有位圖泄漏,但我沒有保留任何記憶中的活動,但是我怎樣才能找到這個泄漏? – Olivier 2011-05-16 09:55:32