什么是記憶體泄露?
就是該回收的記憶體由于種種原因沒有被回收,還駐留在記憶體中,
記憶體泄露有什么影響?
可能一處小小的記憶體泄露就會導致整個應用卡頓,甚至崩潰,
例子說明:
Toast.makeText(MainActivity.this,"Hello",Toast.LENGTH_SHORT).show();這段代碼可能會出現記憶體泄露,
為什么說可能會造成記憶體泄露?
如果在Toast消失之前,Toast 持有了當前的 Activity,而此時,用戶點擊了回傳鍵,導致 Activity 無法被 GC(Garbage Collection垃圾回收) 回收,這個Activity 就引起了記憶體泄露,
解決方法?
所有和當前 Activity 無關的 Context 都可以傳入,避免記憶體泄露的方法同樣使用其他需要傳入 Context 的地方,(這句話我表示理解不了)如下
Toast.makeText(getApplicationContext(),"Hello",Toast.LENGTH_SHORT).show();
getApplicationContext()是整個應用的背景關系,不會持有某個 Activity 物件,
注意
dialog的背景關系不能使用getApplicationContext(),程式會崩掉,dialog實體化必須持有 Activity物件,
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/58599.html
標籤:Android
