内存泄露

什么是内存泄漏?

引用导致的对象未被释放

引起内存泄漏的因素:

  • 单例
  • 非静态内部类
    • 持有外部类的隐式引用,而在外部类回收之前,没有非静态内部类没有得到释放。
    • 非静态内部类创建了静态实例,导致该实例的生命周期达到ClassLoader级别,又因为该实例持有外部的隐式引用,所以导致其外部类无法正常释放。
    • 问题1:为什么非静态内部类对外部类会存在一个隐式引用?
    • 答案1:因为它底层的机制就是这样的。
  • BroacastReceiver没有unRegister
  • inputStream没有close
  • handler AsyncTask,
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容