美文网首页
Android内存泄漏的原因及解决方案

Android内存泄漏的原因及解决方案

作者: mercuryli | 来源:发表于2018-02-06 17:10 被阅读0次

最近在排查内存泄漏的问题,所以想总结一下内存泄漏的原因以及解决方案。

1、单例 在getInstance的时候传入Activity的this or context 会导致泄漏

解决: 使用Application的context

2、静态变量 例如Static Activities Static Views等

解决:在activity销毁时置空

3、 集合中的对象 ArrayList<> HashMap<>等

解决:在activity销毁时置空 

4、动画

解决:在activity销毁时销毁

5、非静态内部类 handler  theard  AsyncTask

解决:静态内部类+弱应用的方式

6、未取消注册或回调  广播  Sensor Manager

通过Context.getSystemService(int name)获取的系统服务,注册监听器后,这会导致服务持有了Context的引用,如果在Activity销毁的时候没有注销这些监听器,会导致内存泄漏。

7、Timer和TimerTask

解决:Activity销毁的时候要立即cancel掉Timer和TimerTask

8、资源未关闭或释放  IO、File流或者Sqlite、Cursor等

解决:用完立即释放

9、WebView

Activity销毁后在先将WebView从父容器中移除,然后再调用它的destory()方法销毁它。

参考资料:

Android内存泄漏的八种可能(上)

Android防止内存泄漏的八种方法(下)

Android内存优化——常见内存泄露及优化方案

相关文章

  • Android内存泄漏原因及解决的总结

    分三步说明Android内存泄漏的原因及解决,“内存泄漏与内存溢出的区别”,“引用方式”,“常见引发原因与解决方案...

  • (转载自diycode)2017 Android 面试题分享整理

    Android(安卓) Android基础知识 Android内存泄漏总结 Handler内存泄漏分析及解决 An...

  • Android 基础

    1、Android布局 2、Android内存泄漏总结 3 、Handler内存泄漏分析及解决 4...

  • 安卓常见异常处理

    内存泄漏 的 造成原因 及 解决方案 对象内存过大保存占大量内存的对象,如Bitmap, XML文件 资源没及时释...

  • Android内存泄漏的原因及解决方案

    最近在排查内存泄漏的问题,所以想总结一下内存泄漏的原因以及解决方案。 1、单例 在getInstance的时候传入...

  • Android学习之旅

    1.Android基础知识2.Android内存泄漏总结3.Handler内存泄漏分析及解决4.Android性能...

  • iOS 内存泄漏排查方法及原因分析

    本文将从以下两个层面解决iOS内存泄漏问题: 内存泄漏排查方法(工具) 内存泄漏原因分析(解决方案) 在正式开始前...

  • Android知识体系总结

    第一部分:Android(安卓)Android基础知识Android内存泄漏总结Handler内存泄漏分析及解决H...

  • android内存泄漏总结

    本文主要总结Android开发中发生的内存泄漏场景,发生的原因,以及解决方案。 目录 Java内部类隐式持有外部类...

  • Jetpack-LiveData

    LiveData实现生命周期感知及避免内存泄漏的原因 Android官方架构组件LiveData: 观察者模式领域...

网友评论

      本文标题:Android内存泄漏的原因及解决方案

      本文链接:https://www.haomeiwen.com/subject/ktzwzxtx.html