看一段**
執行結果將 列印日誌 i: 10
new runnable是乙個內部類, 持用外部類testactivity的引用i,由於內部類不會自行銷毀,
並且由於 i 被內部類引用了,導致testactivity不能被**。
那麼 testactivity 怎麼樣才能被**, 只有內部類被銷毀了,才能做到
解決方法:
第一種方法: hanlder呼叫removecallbacksandmessages(null)
第二種方法: 使用靜態內部類, 因為 靜態內部類不能持有外部類的引用。 持有將報錯。
然後在靜態內部類中使用弱引用, 可防止記憶體洩漏。
執行結果如下:
記憶體洩漏和記憶體溢位 記憶體洩漏和記憶體溢位
記憶體洩漏 是指申請的記憶體空間使用完畢之後未 一次記憶體洩露危害可以忽略,但若一直洩漏,無論有多少記憶體,遲早都會被占用光,最終導致程式crash。因此,開發中我們要盡量避免記憶體洩漏的出現 記憶體溢位 是指程式在申請記憶體時,沒有足夠的記憶體空間供其使用。通俗理解就是記憶體不夠用了,通常在執行大...
wxWidgets delete記憶體洩漏
定義乙個結構typedef tag struct customnode struct,再定義乙個wxarrayptrvoid m nodearray 在程式的初始化過程裡 for wxint32 i 0 i 5 i node struct ptemp new node struct ptemp a ...
PHP記憶體洩漏
如果php物件存在遞迴引用,就會出現記憶體洩漏。這個bug在php裡已經存在很久很久了,先讓我們來重現這個bug,如下 class foo class bar for i 0 i 100 i 執行以上 你會發現,記憶體使用量本應該不變才對,可實際上卻是不斷增加,unset沒有完全生效。現在的開發很多...