我的問題是關於我面臨的內存泄漏(android開發),但無法找到相同的根本原因。內存泄漏 - 初始化另一個類的位圖類型實例變量
我有兩個類 - A和B. A類的對象是B - objectB。 B類有一個Bitmap類型的實例變量mTempBitmap。 在A類中,我創建了一個位圖對象aBitmapObject & initialize - objectB.mTempBitmap = aBitmapObject。 在B類中,我在API onDraw()中將mTempBitmap設置爲null。
現在會發生什麼,在每次按鍵時,objectB的mTempBitmap被更新,然後調用objectB.onDraw。 但是,如果我們按鍵速度太快,有時onDraw()不會被調用。
在這種情況下,我可以看到內存泄漏。如果我使用堆轉儲並使用內存分析器MAT工具進行分析,則會發現50-60個位圖對象,這不是預期的。
所以,我不清楚Java的內存泄漏的定義,但我讀了幾個SO帖子。
在上述情況下內存泄漏發生的原因可能是onDraw()沒有被調用,而objectB.mTempBitmap沒有被更新爲空? (afaik,即使objectB.mTempBitmap不是空的,後面的mTempBitmap會指向另一個位圖,所以應該沒有內存泄漏的問題。) 是否因爲某處的位圖副本被創建並泄漏出來?當我們初始化objectB.mTempBitmap = aBitmap時,有沒有創建位圖的任何副本,或者只是將另一個引用附加到相同的位圖? (afaik,只是另一個參考相同的位圖,沒有新的位圖副本創建)
如果有人有想法,幫助!