你的位置:首页 > 软件开发 > 操作系统 > Handler造成的内存泄漏(二)

Handler造成的内存泄漏(二)

发布时间:2017-03-19 00:00:25
1.Handler使用方式升级版: 使用弱引用 -解决静态内部类访问外部类 2. 我们在handlerMessage中,给TextView设置值,请注意红色方框内的弱引用使用方式 创建一个静态Handler内部类,然后对Handler持有的外部对象使用弱 ...

Handler造成的内存泄漏(二)

 1.Handler使用方式升级版: 使用弱引用 -解决静态内部类访问外部类 

Handler造成的内存泄漏(二)

 

 

 

2. 我们在handlerMessage中,给TextView设置值,请注意红色方框内的弱引用使用方式

 

Handler造成的内存泄漏(二)

创建一个静态Handler内部类,然后对Handler持有的外部对象使用弱引用,这样在回收时也可以回收Handler持有的对象,解决了我们内存泄漏以及访问外部对象的问题。

但是,这样子还不够完美: 我们退出MainActivity后,Looper线程的消息队列中还是可能会有待处理的消息,啥意思呢?就是我们MainActivity退出后,消息队列里还有消息,即我们的例子中,20秒后,还收到消息队列中的消息。

更完美的做法:我们应该在Activity关闭的时候,移除消息队列中的消息。

 Handler造成的内存泄漏(二)

 


原标题:Handler造成的内存泄漏(二)

关键词:内存

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。