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

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


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

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

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

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

你可能感兴趣的:(Android 开发中踩过的坑之七:尽量避免使用Acitivity当做Context)