Android 開發中踩過的坑之七:儘可能避免使用Acitivity當作Context

這坑容易埋, 卻不容易發現. 工具


好比啓動一個頁面, 須要用到一個單例的工具類Utils, 初始化Utils須要一個Context參數, 直接傳入Activity.this. this

而後這個單例的Utils就會一直持有Activity.this, 致使整個Acitivity不能被GC. 而若是代碼中大量的使用Utils, 又不能確認到底誰最早初始化了Utils, 使得內存泄露成了靈異事件難以發現. spa

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

getApplicationContext()事實上的生命週期和當前應用的生命週期同樣, 當前應用在運行時, 它不須要也不該該被回收, 因此能夠放心的使用. 事件

相關文章
相關標籤/搜索