第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

Handler 內(nèi)存泄露分析處理和 Handler回收方式

標(biāo)簽:
Android

一、Handler 内存泄露的原因

参考:http://m.myexception.cn/android/2108819.html

1.内部类的方式实例化Handler

Handlerhandler=newHandler(){

@Override

publicvoidhandleMessage(Messagemsg){

super.handleMessage(msg);

 }

};

   这个的问题是 Java 中 成员内部类及匿名内部类都会隐式的持有外部类对象的引用,影响外部类对象的回收。GC只会回收没有被引用或者根集不可到达的对象(取决于GC算法),内部类在生命周期内始终持有外部类的对象的引用,造成外部类的对象始终不满足GC的回收条件,反映在内存上就是内存泄露。

2.生命周期和 Activity 不一样

内部类持有外部类Activity的引用,当Handler对象有Message在排队,则无法释放,进而导致Activity对象不能释放。

正确 Handler 的写法:

MyHandlermhandler;

@Override

protectedvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

mhandler=newMyHandler(this);

mhandler.sendEmptyMessage(0);

}

staticclassMyHandlerextendsHandler{

privateWeakReferenceactivityWeakReference;

publicMyHandler(MainActivityactivity){

activityWeakReference=newWeakReference(activity);

}

@Override

publicvoidhandleMessage(Messagemsg){

super.handleMessage(msg);

MainActivityact=activityWeakReference.get();

if(activityWeakReference!=null&&act!=null){

// ......

}}}

Handler 回收方式

方式一

mhandler.removeMessages(0);

mhandler.removeMessages(1);

mhandler.removeMessages(2);

mhandler.removeCallbacks(r);

方式二

@Override

protectedvoidonDestroy(){

super.onDestroy();

mhandler.removeCallbacksAndMessages(null);

}

回收方式二官方说明

Removeany pending posts of callbacksandsent messages whose objistoken.Iftokenisnull,all callbacksandmessages will be removed

大概意思是: 意思就是当传入的参数为null时,则移除所有的callbacks和messages,这样就有效的避免了由Handler引起的内存溢出。

原文链接:http://www.apkbus.com/blog-912299-76541.html

點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺(jué)得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫(xiě)下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶(hù)
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專(zhuān)欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消