溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Android 窗體泄露問題

發(fā)布時(shí)間:2020-07-26 14:36:45 來源:網(wǎng)絡(luò) 閱讀:1288 作者:linwg1988 欄目:移動(dòng)開發(fā)

最近遇到這樣一個(gè)問題:

E/WindowManager(30314): android.view.WindowLeaked: Activity com.xxxxxx.www.activity.XXXActivity has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView{52b0f3ac V.E..... R......D 0,0-120,95} that was originally added here;


這是一個(gè)窗體泄露的異常,普遍的解決方案是令窗體(dialog或者popupwindow)dismiss()在activity.finish()之前,這樣的思路是正確的的,但是并不是很全面,有時(shí)候會(huì)發(fā)現(xiàn)即使你的代碼里面把窗體先關(guān)閉了,依然會(huì)出現(xiàn)這個(gè)問題,今天在stack overflow上面找到一個(gè)比較全面的答案這里分享給大家  先上鏈接http://stackoverflow.com/questions/2850573/activity-has-leaked-window-that-was-originally-added


這里提供了3個(gè)答案分別對(duì)應(yīng)三種情況,第一種如上所說,窗體關(guān)閉在activity關(guān)閉之后,第二種情況其實(shí)跟第一種的原因是一樣的,但是導(dǎo)致activity關(guān)閉的原因并不是我們主動(dòng)關(guān)閉activity,而是捕獲到了異常導(dǎo)致了activity提前關(guān)閉,然后當(dāng)我們?nèi)フ{(diào)用窗體展示的時(shí)候然出現(xiàn)了這個(gè)異常,所以真正需要我們?nèi)ソ鉀Q的其實(shí)是比這個(gè)窗體泄露異常更早出現(xiàn)的異常(ps:這次我就是倒在了這里,完全沒注意到更早打印的錯(cuò)誤日志。。。--?。┑谌N情況我還沒遇到過就不說了。



本文只是記錄開發(fā)中遇到花了比較多時(shí)間不容易發(fā)現(xiàn)的問題。。馬克



向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI