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)閉當前已彈出的彈框