亚洲免费在线视频-亚洲啊v-久久免费精品视频-国产精品va-看片地址-成人在线视频网

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

android - 為什么重復(fù)Replace Fragment會(huì)內(nèi)存泄漏

瀏覽:106日期:2024-08-14 18:20:57

問(wèn)題描述

android - 為什么重復(fù)Replace Fragment會(huì)內(nèi)存泄漏

如圖,當(dāng)點(diǎn)擊下面的兩個(gè)按鈕時(shí),REPALCE上面的Fragmnet,共兩個(gè),反復(fù)切換時(shí)發(fā)生了內(nèi)存泄漏

這是Fragment的代碼:

public class Fragment2 extends Fragment { private List<Bitmap> lb = new ArrayList<>(); @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {allocBitMap();allocBitMap();return inflater.inflate(R.layout.f2, container, false); } private void allocBitMap() {Bitmap b = BitmapFactory.decodeResource(getResources(), R.drawable.men);lb.add(b); } @Override public void onDestroy() {Log.e('onDestroy', 'yes, onDestroy');super.onDestroy(); }}

這是Activity的部分代碼

@Override public void onClick(View v) {switch (v.getId()) { case R.id.bt_left:transFragleft();break; case R.id.bt_right:transFragright();break;} } Fragment f1 = new Fragment1(); Fragment f2 = new Fragment2(); private void transFragleft(){FragmentTransaction ft = getSupportFragmentManager().beginTransaction();ft.replace(R.id.rl_f, f1);ft.commit(); } private void transFragright(){FragmentTransaction ft = getSupportFragmentManager().beginTransaction();ft.replace(R.id.rl_f, f2);ft.commit(); }

這是反復(fù)切換時(shí)的內(nèi)存狀態(tài):android - 為什么重復(fù)Replace Fragment會(huì)內(nèi)存泄漏

這是LOGCAT,可以看到onDestroy執(zhí)行了,整個(gè)Fragment生命周期馬上就結(jié)束了

04-27 09:46:04.682 29320-29320/com.sg.fragmentpitfall E/onDestroy: yes, onDestroy04-27 09:46:06.344 29320-29320/com.sg.fragmentpitfall E/onDestroy: yes, onDestroy04-27 09:46:07.895 29320-29320/com.sg.fragmentpitfall E/onDestroy: yes, onDestroy

那么為什么他占用的那塊內(nèi)存還在呢?

提問(wèn)2:JAVA中怎樣分配一定內(nèi)存,用于實(shí)驗(yàn),我這種bitmap的方法太LOW了,而且里面還有CONTEXT;

提問(wèn)3:是否應(yīng)該避免使用FRAGMENT(我知道用HIDE/SHOW的方式要比REPLACE要好

謝謝!

問(wèn)題解答

回答1:

把LeakCanary集成到代碼里面,看看是什么原因?qū)е碌膬?nèi)存泄露。而且內(nèi)存圖上升,也不一定就是內(nèi)存泄露。你每次申請(qǐng)了Bitmap,沒(méi)準(zhǔn)沒(méi)達(dá)到GC的標(biāo)準(zhǔn),那內(nèi)存一直上漲也沒(méi)問(wèn)題。

回答2:

不是 fragment 的問(wèn)題,而是你用的bitmap 的原因

相關(guān)文章:
主站蜘蛛池模板: 中文字幕在线视频网站 | 91寡妇天天综合久久影院 | 午夜日本一区二区三区 | 亚洲国产精品日韩高清秒播 | 黄色wwwxxx| 中文精品爱久久久国产 | 美女张开腿让男人捅爽 | 国内精品小视频 | 国产亚洲精品一区二区三区 | 99久久精品久久久久久清纯 | 91tv成人影院免费 | 午夜欧美在线 | 黄色a三级三级三级免费看 黄色a网 | 99久久精品免费看国产一区二区三区 | 亚洲综合日本 | 国产精品久久久久久久久99热 | 国产高清在线看免费视频观 | 国产精品久久久免费视频 | 毛片在线免费观看网站 | 日本一区毛片免费观看 | 精品国产午夜久久久久九九 | 日本亚洲免费 | 国产三级久久 | 国产成人综合91香蕉 | 精品国产精品a | 久久视频在线 | 日本在线资源 | 久久视频免费 | 亚洲 欧美 日韩 在线 中文字幕 | 最新福利片v国产片 | 九九精品视频在线播放8 | 亚洲欧美日韩高清在线看 | 日本欧美视频在线 | 亚洲精品久久精品h成人 | 国产精品黄色 | 一级做a爰全过程免费视频毛片 | 经典香港一级a毛片免费看 精品400部自拍视频在线播放 | 欧美xxx精品 | 国产婷婷一区二区在线观看 | 在线看欧美日韩中文字幕 | 美女张开腿给人网站 |