使用context上下文时如何防止内存泄漏

2017-5-11 liuyingcong 安卓开发

造成内存泄漏情况之一是:当本类实例持有外部类的静态引用时会造成内存泄漏。


在Activity中当要使用资源或服务时需要传递一个context上下文,大部分情况下会习惯性的写一个this或Activity.this。注意,大部分情况是OK的,但是有一种情况会造成内存泄漏:


当我们写了一个单例工具类,单例工具类使用时,你在某个Activity里面为了方便,直接传了个this;这样问题就来了,我们的这个类中的instance是一个static且强引用的,在其内部引用了一个Activity作为Context,也就是说,我们的这个Activity只要我们的项目活着,就没有办法进行内存回收。而我们的Activity的生命周期肯定没这么长,所以造成了内存泄漏。


这种情况下就应该使用getApplicationContext()代替Activity.this。

网站备案号:京ICP备11043289号-1 北京市公安局网络备案 海1101084571
版权所有 北京育灵童科技发展有限公司 Copyright © 2002-2018 www.elight.cn, All Rights Reserved