美文网首页
非静态内部类的Handeler造成内存泄漏问题

非静态内部类的Handeler造成内存泄漏问题

作者: 呼语 | 来源:发表于2021-03-26 17:47 被阅读0次

“非静态内部类会持有外部类的引用” ,所以非静态内部类可以访问外部类成员变量。

public class outClass{

private class inerClass{
  
}

}

当我们使用匿名内部类实现Handler为时,该内部类会持有外部Activity的引用,若handler的looper处理耗时工作时,Activity不能被及时回收,造成内存泄漏。

相关文章

  • Android性能-内存泄漏

    泄漏原因: 单例造成的内存泄漏 非静态内部类(匿名类等)创建静态实例造成的内存泄漏 Handler/Thread/...

  • 非静态内部类的Handeler造成内存泄漏问题

    “非静态内部类会持有外部类的引用” ,所以非静态内部类可以访问外部类成员变量。 当我们使用匿名内部类实现Handl...

  • 常见的内存泄漏(转载)

    一、静态变量持有 二、单例模式造成 三、非静态内部类创建静态实例可能造成的内存泄漏 四、webview造成内存泄漏...

  • 每日一道面试题#1 自定义 Handler 时如何有效地避免内存

    问题原因:一般非静态内部类持有外部类的引用的情况下,造成外部类在使用完成后不能被系统回收内存,从而造成内存泄漏。这...

  • 内存泄漏实战总结

    一.handler造成内存泄漏: 非静态内部类会持有外部类的引用,handler的message的target持有...

  • Android内存分析:profiler + MemoryAna

    一些内存泄漏的场景: 1 非静态内部类的静态实例2 多线程相关的匿名内部类/非静态内部类3 Handle内存泄漏4...

  • Android内存泄漏之集合类

    Android内存泄漏基本可以分为以下四大类:1、集合类泄漏2、单例/静态变量造成的内存泄漏3、匿名内部类/非静态...

  • 内存泄漏问题

    1 、非静态内部类持有外部类的引用的情况下,造成外部类在使用完成后不能被系统回收内存,从而造成内存泄漏。通过弱应用...

  • Android内存泄漏(五):Handler

    上一节我们介绍了非静态内部类作为静态变量造成的内存泄漏情况,这一节我们介绍一下Handler的使用造成的内存泄漏情...

  • 关于静态内部类

    静态内部类与非静态内部类的区别 非静态内部类会隐式持有外部类的引用,可能引起内存泄漏。 静态内部类只能调用外部类的...

网友评论

      本文标题:非静态内部类的Handeler造成内存泄漏问题

      本文链接:https://www.haomeiwen.com/subject/arqshltx.html