Android 避免內存泄漏

什麼是內存泄露?

  就是該回收的內存因爲種種緣由沒有被回收,還駐留在內存中。this

內存泄露有什麼影響?

  可能一處小小的內存泄露就會致使整個應用卡頓,甚至崩潰。spa

 

例子說明:  

Toast.makeText(MainActivity.this,"Hello",Toast.LENGTH_SHORT).show();

  這段代碼可能會出現內存泄露。code

爲何說可能會形成內存泄露?

  若是在Toast消失以前,Toast 持有了當前的 Activity,而此時,用戶點擊了返回鍵,致使 Activity 沒法被 GC(Garbage Collection垃圾回收) 回收,這個Activity 就引發了內存泄露。對象

解決方法?

  全部和當前 Activity 無關的 Context 均可以傳入,避免內存泄露的方法一樣使用其餘須要傳入 Context 的地方。(這句話我表示理解不了)以下blog

Toast.makeText(getApplicationContext(),"Hello",Toast.LENGTH_SHORT).show();

   getApplicationContext()是整個應用的上下文,不會持有某個 Activity 對象。內存

 

注意

  dialog的上下文不能使用getApplicationContext(),程序會崩掉,dialog實例化必須持有 Activity對象。get

相關文章
相關標籤/搜索