1.什么情况下会出现内存泄漏?

(1)单例模式下为什么会造成内存泄漏?

  • 因为单例的生命周期和应用的生命周期是一致的,如果往单例模式里面传了一个生命周期比较短的对象,比如Activity,就会导致Activity不能释放,导致内存泄漏。我们可以传context.getAppliactionContext,而不用context

(2)静态引用为什么会导致内存泄漏?

  • 静态变量持有对Activity或Fragment的引用,导致它们无法被垃圾回收机制释放。
  • 解决方案:
  • 确保不将Activity或Fragment的实例赋值给静态变量。如果确实需要使用静态变量,请在不需要时手