带着问题学习

  1. Handler 什么情况下会导致内存泄漏?
  1. 怎么避免 Handler 内存泄漏?

内存泄漏的原因

匿名内部类非静态内部类 会持有外部类的 隐式引用,如果内部类还没执行完,会导致外部类无法被回收

内存泄漏两种情况

匿名内部类

  • Java代码:
    • Kotlin 代码:

      非静态内部类

      • Java 代码:
        • Kotlin 代码:

          避免方法

          提供 Kotlin 实现

          静态内部类、弱引用

          手动清除MessageQueue

          推荐/参考

          SharedPreference 源码解析Android屏幕适配方案
          Loading...