这坑容易埋, 却不容易发现. 工具
好比启动一个页面, 须要用到一个单例的工具类Utils, 初始化Utils须要一个Context参数, 直接传入Activity.this. this
而后这个单例的Utils就会一直持有Activity.this, 致使整个Acitivity不能被GC. 而若是代码中大量的使用Utils, 又不能确认到底谁最早初始化了Utils, 使得内存泄露成了灵异事件难以发现. spa
因此, 正确的使用方式是: activity.this.getApplicationContext();生命周期
getApplicationContext()事实上的生命周期和当前应用的生命周期同样, 当前应用在运行时, 它不须要也不该该被回收, 因此能够放心的使用. 事件