码迷,mamicode.com
首页 > 移动开发 > 详细

Android 开发中踩过的坑之七:尽量避免使用Acitivity当做Context

时间:2015-08-06 22:45:24      阅读:211      评论:0      收藏:0      [点我收藏+]

标签:

这坑容易埋, 却不容易发现. 


比如启动一个页面, 需要用到一个单例的工具类Utils, 初始化Utils需要一个Context参数, 直接传入Activity.this. 

然后这个单例的Utils就会一直持有Activity.this, 导致整个Acitivity不能被GC. 而如果代码中大量的使用Utils, 又不能确认到底谁最先初始化了Utils, 使得内存泄露成了灵异事件难以发现. 

所以, 正确的使用方式是: activity.this.getApplicationContext();

getApplicationContext()事实上的生命周期和当前应用的生命周期一样, 当前应用在运行时, 它不需要也不应该被回收, 所以可以放心的使用. 

Android 开发中踩过的坑之七:尽量避免使用Acitivity当做Context

标签:

原文地址:http://my.oschina.net/u/1393188/blog/488840

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!