handler内存泄露

长生命周期引用短生命周期对象,gc来时短生命周期对象gc不可达。

mainthread 持有mainlooper持有msgqueue持有msg持有handlet持有activity。

1.gc来时msgqueue没处理完。mainthread生命周期大于activity


2.activity 持有耗时leakthread  持有handler持有activity。如果leakthread生命周期大于activity,产生泄露。

静态的handler持有弱引用activity

如果没有耗时线程也可以清空主线程关于handler的msg

退出时也可以停掉耗时线程。

5leakthread不要匿名初始化,通过handler通信

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容