Android 开发中踩过的坑之七:尽可能避免使用Acitivity当作Context

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


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

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

因此, 正确的使用方式是: activity.this.getApplicationContext();生命周期

getApplicationContext()事实上的生命周期和当前应用的生命周期同样, 当前应用在运行时, 它不须要也不该该被回收, 因此能够放心的使用. 事件

相关文章
相关标签/搜索