亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

android - 為什么定義一個static ImageView會導致內存泄露?

瀏覽:95日期:2024-08-22 10:41:18

問題描述

提示說:不要把「Do not place android context classes in static fields, this is a memory leak.」

android - 為什么定義一個static ImageView會導致內存泄露?

我知道activity context 不應該被放到static fields里面因為它在app生命周期內一直存在,而且如果它通過構造函數(shù)傳遞給其他class的話,其他class也會一直不被回收。

但為什么ImageView不能是static(我發(fā)現(xiàn)SwipeRefreshLayout也不行)?是因為ImageView包含context?Button和TextView之類的view就沒有這種問題。

問題解答

回答1:

在Activity中填充布局,可以通過如下方式:

1.view view = View.inflate(context, R.layout.test,null );2.View view = LayoutInflater.from(context).inflate(R.layout.test,null);

可以發(fā)現(xiàn),無論哪種方式,填充后的View都是持有context的引用的,也就是Activity的引用.如果此時填充的view是static修飾,那么靜態(tài)的對象將持續(xù)持有Activity的引用,導致Activity無法銷毀,Activity中所有的控件也都將無法徹底銷毀和回收.最終造成內存泄露.

PS:為什么要使用靜態(tài)View的方式?有什么特殊的業(yè)務需求?

回答2:

static變量在內存中是單獨存在于內存塊中的,控件(你的問題中指的是ImageView)是持有Activity的引用的,這種情況下,Activity是沒法被徹底銷毀的,因為在內存中一直有一個引用(指針理解),導致Activity也無法被回收,自然就會內存泄漏了!建議,在Android中不要使用static修飾控件!

回答3:

View需要持有Context (否則無法實現(xiàn) setXXX(int resid)類的功能)

我也不知道Button/TextView為什么不警告

回答4:

static變量無法被自動回收啊你將某個view設為靜態(tài)量,而view又持有activity的引用,這下連activity也泄露了

回答5:

IPC說: static對于Android四大組件來說, 簡直就是大殺器

回答6:

因為static的生命周期很長比當前activity長

回答7:

這么說吧,這是java基礎.靜態(tài)變量在類文件編譯成字節(jié)碼后,載入方法區(qū)的時候,就會初始化靜態(tài)變量,而且靜態(tài)變量會一直存在,而沒有static修飾的activity,會在new的時候,在堆中申請空間,當activity沒用的時候,gc會按照gc-root遍歷此activity有沒有被引用,由于activity的context被持有,ImageView view = LayoutInflater.from(context).inflate(R.layout.test,null);,所以,gc不能回收,造成內存泄漏,,當直到虛擬機結束進程(也就是app停止),

相關文章:
主站蜘蛛池模板: 一区二区三区在线观看视频 | 一级做a爰片久久毛片欧美 一级做a爰片久久毛片图片 | 国产福利午夜自产拍视频在线 | 色综合久久久久久 | 久久香蕉国产观看猫咪3atv | 久草免费福利资源站在线观看 | 在线一区免费播放 | 国产剧情毛片 | 免费黄色小视频在线观看 | 一区二区三区欧美在线 | 一一级黄色片 | 免费的很黄很色的床小视频 | 在线视频黄 | 国产视频a| 精品综合久久久久久98 | 欧美亚洲国产一区二区三区 | 免费国产午夜在线观看 | 99超级碰碰成人香蕉网 | 中文在线日本免费永久18近 | 久久久国产亚洲精品 | 国产网站免费在线观看 | 黄色激情在线观看 | 在线你懂的 | 99久久爱re热6在播放 | 亚洲国产m3u8在线观看 | 久久国产精品亚洲 | 中日韩免费视频 | 欧美视频亚洲色图 | 99久久精品国产麻豆 | 中文字幕一精品亚洲无线一区 | 国产高清在线精品一区免费97 | 国内精品一区二区三区最新 | 999毛片免费观看 | 最新在线黄色网址 | 国产免费高清无需播放器 | 伊人网国产 | 亚洲免费美女视频 | 一级一级一片在线观看 | 国产精品成人va在线观看 | 久久久久久88色偷偷 | 日韩高清网站 |