關於activity,context那些坑

1、activity和context的引用堅決不要用static修飾:由於static的生命週期伴隨整個應用(存放在方法區),導致該引用指向的activity不能被GC回收,所以會造成內存泄漏;
2、被static修飾的field會被該類的所有對象所共享
3、startActivity每次都是重新new一個activity(任務棧是特例),重新new一個activity意味着類的field會被重置;在activity的生命週期內全局field的值不會自動被重置。
總之:如果activity和context被static修飾了會造成內存泄漏。
PS:使用靜態變量時注意使用開關,慎重考慮對靜態變量的重置(開關針對於靜態變量,因爲所有對象共享該靜態變量的值;非靜態的一般不需要,因爲new的時候會重置)

發佈了72 篇原創文章 · 獲贊 71 · 訪問量 16萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章