Handler内存溢出解决方案
生活随笔
收集整理的这篇文章主要介绍了
Handler内存溢出解决方案
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
Handler引起内存溢出,解决方案
1.介绍
public class SampleActivity extends Activity {private final Handler mLeakyHandler = new Handler() {@Overridepublic void handleMessage(Message msg) {// ... }} }在使用handler时,这是一段很常见的代码。但是,它却会造成严重的内存泄漏问题。在实际编写中,我们往往会得到如下警告:
⚠ In Android, Handler classes should be static or leaks might occur.
2.引起内存溢出的原因
详细请参考:Android之Handler内存泄漏分析及解决
3.解决方案
/** * 创建时间:2016/2/25 11 : 10 * 项目名称:Heros * 类说明:此类主要用来解决Handler引起的内存溢出 * 创建人: lc * * @since JDK 1.7.0 * Copyright (c) lc-版权所有 */ public class WeakReferenceHandler<T extends Handler.Callback> extends Handler {private T handlerContainer;private Reference<T> handlerReference;public WeakReferenceHandler(T handlerContainer) {handlerReference = new WeakReference<>(handlerContainer);}public T getHandlerContainer() {return handlerReference.get();}@Overridepublic void handleMessage(Message msg) {super.handleMessage(msg);Callback container = getHandlerContainer();if (container != null) {container.handleMessage(msg);}} }总结
以上是生活随笔为你收集整理的Handler内存溢出解决方案的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: android studio+webap
- 下一篇: 如何写校验函数