什么是內(nèi)存泄漏贪薪?
引用導(dǎo)致的對象未被釋放
引起內(nèi)存泄漏的因素:
- 單例
- 非靜態(tài)內(nèi)部類
- 持有外部類的隱式引用吨艇,而在外部類回收之前徒爹,沒有非靜態(tài)內(nèi)部類沒有得到釋放。
- 非靜態(tài)內(nèi)部類創(chuàng)建了靜態(tài)實(shí)例贺奠,導(dǎo)致該實(shí)例的生命周期達(dá)到ClassLoader級別霜旧,又因?yàn)樵搶?shí)例持有外部的隱式引用,所以導(dǎo)致其外部類無法正常釋放儡率。
- 問題1:為什么非靜態(tài)內(nèi)部類對外部類會(huì)存在一個(gè)隱式引用挂据?
- 答案1:因?yàn)樗讓拥臋C(jī)制就是這樣的。
- BroacastReceiver沒有unRegister
- inputStream沒有close
- handler AsyncTask儿普,