內(nèi)存泄漏

關(guān)于內(nèi)存泄漏,首先在工程里安裝相應(yīng)插件喜爷,在點(diǎn)到相應(yīng)頁面的時(shí)候則會(huì)有一個(gè)工具出現(xiàn)。

1. OrderServiceDialog?

Excluded by rule matching field android.os.Message#obj because Prior to ART , a thread waiting on a blocking queue will leak the last dequeued object as a stack local reference .

So when a HandlerThread becomes idle, it keeps a local reference to the last message it received. that message then gets recycled and can be used again. as long as all message are recycled after beingused, this won’t be a problem , because these references are cleared when beingrecycled. However, dialogs create when amessage needs to be sent.

These Message templates holds references to the dialoglisteners , which most likely leads to holding a reference onto the activity in someway.Dialogs never recycle their template Message, assuming these Message instances will get GCed when the dialog is GCed. the combination of the these two things creates a hingh potential for memory leaks as soon as you use dialogs. these memory leaks might be temporary, but some handler threads sleep for a long time.

To fix this, you could post empty messages to the idle handler threads from time to time. this won’t be easy because you cannot access all handler threads, but a librarythat is widely used should consider doing this for its own handler threads.

排除規(guī)則匹配字段android.os.Message#obj因?yàn)樵贏RT之前,等待阻塞隊(duì)列的線程將泄漏最后一個(gè)出隊(duì)對(duì)象作為堆棧本地引用。

所以當(dāng)HandlerThread變得空閑時(shí)崔挖,它會(huì)保留對(duì)它接收到的最后一個(gè)消息的本地引用贸街。該消息然后被再次使用庵寞,可以再次使用。只要所有消息在被使用后被回收薛匪,這不會(huì)是一個(gè)問題捐川,因?yàn)檫@些引用在被重新循環(huán)時(shí)被清除。但是逸尖,當(dāng)需要發(fā)送消息時(shí)會(huì)創(chuàng)建對(duì)話框古沥。

這些Message模板保存對(duì)dialoglisteners的引用瘸右,這最有可能導(dǎo)致在某個(gè)操作中保留對(duì)該活動(dòng)的引用.Dialogs從不回收其模板Message,假設(shè)當(dāng)對(duì)話框?yàn)镚Ced時(shí)岩齿,這些Message實(shí)例將被GCed太颤。一旦你使用對(duì)話框,這兩個(gè)東西的組合就會(huì)產(chǎn)生一個(gè)內(nèi)存泄漏的潛力盹沈。這些內(nèi)存泄漏可能是暫時(shí)的龄章,但是一些處理程序線程可以長(zhǎng)時(shí)間睡眠。

要解決這個(gè)問題乞封,您可以不時(shí)向空閑的處理程序線程發(fā)送空消息做裙。這不容易,因?yàn)槟鸁o法訪問所有處理程序線程肃晚,但是一個(gè)被廣泛使用的庫(kù)應(yīng)該考慮為自己的處理程序線程執(zhí)行此操作锚贱。

解決方法:首先添加弱引用,

privateDialogInterface.OnDismissListeneronDismissListener=newDialogInterface.OnDismissListener() {

@Override

public voidonDismiss(DialogInterface dialog) {

dialog.dismiss();

mHandler.sendEmptyMessage(0);

mHandler.removeCallbacksAndMessages(null);

}

};

private static classUpdateHandlerextendsHandler {

WeakReferenceweakReference;

UpdateHandler(OrderServiceDialog dialog) {

weakReference=newWeakReference<>(dialog);

}

@Override

public voidhandleMessage(Message msg) {

super.handleMessage(msg);

OrderServiceDialog dialog =weakReference.get();

if(dialog !=null) {

dialog.selectDateAdapter.cancleSelectUpdateAdapter();

}

}

}

發(fā)送一個(gè)空message給handler关串,然后把回調(diào)的message都移除掉拧廊。

2. 自定義的一個(gè)StickerSpan繼承了ImageSpan,將activity傳入晋修,導(dǎo)致了內(nèi)存泄漏卦绣。解決辦法:其實(shí)不需要activity,不再傳activity飞蚓。加入真的需要上下文滤港,則最好傳入getApplicationContext()。

3.





4. ?






5.





6.



7.



8.




9. ?




10.




11.




12.




13.



14.



15



16.


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末趴拧,一起剝皮案震驚了整個(gè)濱河市溅漾,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌著榴,老刑警劉巖添履,帶你破解...
    沈念sama閱讀 219,366評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異脑又,居然都是意外死亡暮胧,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門问麸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來往衷,“玉大人,你說我怎么就攤上這事严卖∠幔” “怎么了?”我有些...
    開封第一講書人閱讀 165,689評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵哮笆,是天一觀的道長(zhǎng)来颤。 經(jīng)常有香客問我汰扭,道長(zhǎng),這世上最難降的妖魔是什么福铅? 我笑而不...
    開封第一講書人閱讀 58,925評(píng)論 1 295
  • 正文 為了忘掉前任萝毛,我火速辦了婚禮,結(jié)果婚禮上滑黔,老公的妹妹穿的比我還像新娘珊泳。我一直安慰自己,他們只是感情好拷沸,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,942評(píng)論 6 392
  • 文/花漫 我一把揭開白布色查。 她就那樣靜靜地躺著,像睡著了一般撞芍。 火紅的嫁衣襯著肌膚如雪秧了。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,727評(píng)論 1 305
  • 那天序无,我揣著相機(jī)與錄音验毡,去河邊找鬼。 笑死帝嗡,一個(gè)胖子當(dāng)著我的面吹牛晶通,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播哟玷,決...
    沈念sama閱讀 40,447評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼狮辽,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了巢寡?” 一聲冷哼從身側(cè)響起喉脖,我...
    開封第一講書人閱讀 39,349評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎抑月,沒想到半個(gè)月后树叽,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,820評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,990評(píng)論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了恢准。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,127評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡糠悯,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤篷店,帶...
    沈念sama閱讀 35,812評(píng)論 5 346
  • 正文 年R本政府宣布祭椰,位于F島的核電站臭家,受9級(jí)特大地震影響疲陕,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜钉赁,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,471評(píng)論 3 331
  • 文/蒙蒙 一蹄殃、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧你踩,春花似錦诅岩、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,017評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至膝藕,卻和暖如春式廷,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背芭挽。 一陣腳步聲響...
    開封第一講書人閱讀 33,142評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工滑废, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人袜爪。 一個(gè)月前我還...
    沈念sama閱讀 48,388評(píng)論 3 373
  • 正文 我出身青樓蠕趁,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親辛馆。 傳聞我的和親對(duì)象是個(gè)殘疾皇子俺陋,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,066評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 轉(zhuǎn)至元數(shù)據(jù)結(jié)尾創(chuàng)建: 董瀟偉,最新修改于: 十二月 23, 2016 轉(zhuǎn)至元數(shù)據(jù)起始第一章:isa和Class一....
    40c0490e5268閱讀 1,721評(píng)論 0 9
  • 1.要做一個(gè)盡可能流暢的ListView昙篙,你平時(shí)在工作中如何進(jìn)行優(yōu)化的倔韭? ①Item布局,層級(jí)越少越好瓢对,使用hie...
    fozero閱讀 730評(píng)論 0 0
  • CHAPTER XVⅡ How Captain Dobbin Bought a Piano OUR SURPRIS...
    ViminX閱讀 598評(píng)論 0 0
  • Effective TensorFlow Table of Contents TensorFlow Basics ...
    法布雷加嘻閱讀 547評(píng)論 0 1
  • 601 王彥飛 這一節(jié)中講了清平灣的一個(gè)重要日子讓你永遠(yuǎn)不會(huì)忘記寿酌。這里的人們過清明,過端午和中秋硕蛹。不過就是不知?jiǎng)?..
    一花匠閱讀 435評(píng)論 0 1