Handler消息机制,postDelayed会造成线程阻塞吗?对内存有什么影响?
每开启一个App,就相当于开启一个新的线程。Handler导致内存泄漏一般发生在发送延迟消息的时候,当Activity关闭之后,延迟消息还没发出,那么主线程中的MessageQueue就会持有这个消息的引用,而这个消息是持有Handler的引用,而handler作为匿名内部类持有了Activity的引用,所以就有了以下的一条引用链。其根本原因是因为这条引用链的头头,也就是主线程,是不会被回收的,所以导致Activity无法被回收,出现内存泄漏,其中Handler只能算是导火索。
原创
2023-10-13 16:59:46 ·
408 阅读 ·
0 评论