Android内存泄漏(Handler造成的内存泄漏(二))
来源:互联网 发布:ai软件手机版 编辑:程序博客网 时间:2024/06/05 08:18
接着上一篇/
Handler使用方式升级版: 使用弱引用 -解决静态内部类访问外部类
1. 修改一下我们刚才例子中的UI :在MainActity的布局文件 activity_main.xml中添加一个TextView ,并且在MainActity的oncreat找到并初始化它。
代码和效果示意如下:
2. 我们在handlerMessage中,给TextView设置值,请注意红色方框内的弱引用使用方式:
我们一起来分析上面的做法:
创建一个静态Handler内部类,然后对Handler持有的外部对象使用弱引用,这样在回收时也可以回收Handler持有的对象,解决了我们内存泄漏以及访问外部对象的问题。
但是,这样子还不够完美: 我们退出MainActivity后,Looper线程的消息队列中还是可能会有待处理的消息,啥意思呢?就是我们MainActivity退出后,消息队列里还有消息,即我们的例子中,20秒后,还收到消息队列中的消息。
更完美的做法:我们应该在Activity关闭的时候,移除消息队列中的消息。
0 0
- Android内存泄漏(Handler造成的内存泄漏(二))
- Android内存泄漏(Handler造成的内存泄漏(一))
- Handler可能造成内存泄漏(四)
- Android内存泄漏(线程造成的内存泄漏与资源未关闭造成的内存泄漏)
- Android Handler造成的内存泄漏的分析j
- Android内存泄漏(使用单例模式造成的内存泄漏)
- Android内存泄漏(非静态内部类创建静态实例造成的内存泄漏)
- Android内存泄漏(使用单例模式造成的内存泄漏)
- Android Handler 内存泄漏
- Android Handler内存泄漏
- 【内存泄漏】Android内存泄漏---Handler
- 内存泄漏(二)
- Andorid中Handler造成的内存泄漏浅析与处理
- 如何避免使用Handler造成的内存泄漏
- IBOutlet造成的内存泄漏
- cdbexception造成的内存泄漏
- MVP造成的内存泄漏
- Android handler 引起的内存泄漏
- 1 如何源码编译并部署red5
- MonoBehaviour组件的生命周期
- 三台服务器之对比
- 字符串作为freemarker模板的简单实现例子
- Delphi XE 获取Wifi 信息
- Android内存泄漏(Handler造成的内存泄漏(二))
- Leetcode no. 102
- 接触C++
- PAT-B 1051. 复数乘法
- C面试宝典-(程序题)3
- hdu 1023 Train Problem II 卡特兰数
- 项目经理继续教育在线考试题库
- 安装rabbitmq
- Android内存泄漏(使用单例模式造成的内存泄漏)