Kotlin中handler避免内存泄漏
来源:互联网 发布:ubuntu重装 编辑:程序博客网 时间:2024/05/22 06:45
转载请标明出处:http://blog.csdn.net/donkor_/article/details/78796518
前言:
Handler在Android开发中经常使用,一不小心就会陷入内存泄漏的问题,最近在开发一款Kotlin软件,针对Handler内存泄漏的问题做出了解决方案
问题分析:
在finish()的时候,Message还没有被处理,Message持有Handler, Handler持有Activity,这样阻止了GC对Acivity的回收,就发生了内存泄露。正确的写法应该是使用显形的引用,静态内部类与 外部类。使用弱引用WeakReference。 最后在Activity调用onDestroy()的时候要取消掉该Handler对象的Message和Runnable
核心代码:
private class MyHandler(activity: thisActivity) : Handler() { private val mActivity: WeakReference<thisActivity> = WeakReference(activity) override fun handleMessage(msg: Message) { if (mActivity.get() == null) { return } val activity = mActivity.get() when (msg.what) { 0-> { } else -> { } } } } override fun onDestroy() { // Remove all Runnable and Message. MyHandler(this).removeCallbacksAndMessages(null) super.onDestroy() }
阅读全文
0 0
- Kotlin中handler避免内存泄漏
- Handler避免内存泄漏用法
- Handler.Callback()避免内存泄漏
- Android Handler 避免内存泄漏
- Android中避免内存泄漏
- Android Weak Handler:可以避免内存泄漏的Handler库
- Android Weak Handler:可以避免内存泄漏的Handler库
- Android Weak Handler:可以避免内存泄漏的Handler库
- Android Weak Handler:可以避免内存泄漏的Handler库
- Android Weak Handler:可以避免内存泄漏的Handler库
- Android Weak Handler:可以避免内存泄漏的Handler库
- Android Weak Handler:可以避免内存泄漏的Handler库
- Android Weak Handler:可以避免内存泄漏的Handler库
- Android Weak Handler:可以避免内存泄漏的Handler库
- Android Weak Handler:可以避免内存泄漏的Handler库
- Android Weak Handler:可以避免内存泄漏的Handler库
- Android Handler 避免内存泄漏的用法总结
- 自定义Handler使用静态内部类避免内存泄漏
- 如何成为机器学习工程师:学习路径
- dfs
- **中缀表达式转换成后缀表达式并求值**
- mongodb安装和配置
- String类
- Kotlin中handler避免内存泄漏
- Lucene.net(4.8.0)+PanGu分词器 问题记录一 分词器Analyzer的构造和内部成员ReuseStategy
- 普及练习场 排序 【模板】快速排序
- 解析网络数据添加数据库
- BCD码
- 数组Array
- 大型网站技术架构笔记-序
- mybatis连接mysql数据库 tinyint为boolean类型,怎样使其返回类型为integer
- 郁闷的出纳员 bzoj 1503 splay