Android | 那些年踩過的坑之bug錦集

1.窗體泄露

報錯信息

E/WindowManager: android.view.WindowLeaked: Activity com.yoyo.ipctest.MainActivity has leaked window DecorView@571161f[] that was originally added here
 
at android.view.ViewRootImpl.<init>(ViewRootImpl.java:418)
at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:331)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:93)
at android.app.Dialog.show(Dialog.java:329)
at android.app.AlertDialog$Builder.show(AlertDialog.java:1112)
at com.yoyo.ipctest.MainActivity.releaseConnect(MainActivity.java:795)
at com.yoyo.ipctest.MainActivity.onDestroy(MainActivity.java:1385)
at android.app.Activity.performDestroy(Activity.java:6884)
at android.app.Instrumentation.callActivityOnDestroy(Instrumentation.java:1153)
at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:4191)
at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:4222)
at android.app.ActivityThread.-wrap6(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1539)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6121)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)發(fā)生

發(fā)生窗體泄露的原因:
在當前activity中彈框后, 彈框沒有關(guān)閉的時候就銷毀了activity. 因為dialog是依附于activity顯示的,所以當activity被銷毀時就會造成窗體泄露. 就是上述報錯信息

解決辦法:
在activity被銷毀時對dialog進行判斷, 關(guān)閉當前已彈出的彈框

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容