天天看點

android.view.WindowLeaked分析以及解決辦法

最佳答案

You’re trying to show a Dialog after you’ve exited an Activity.

原因分析

Android的每一個Activity都有個WindowManager窗體管理器,同樣,建構在某個Activity之上的對話框、PopupWindow也有相應的WindowManager窗體管理器。因為對話框、PopupWindown不能脫離Activity而單獨存在着,是以當某個Dialog或者某個PopupWindow正在顯示的時候我們去finish()了承載該Dialog(或PopupWindow)的Activity時,就會抛Window Leaked異常了,因為這個Dialog(或PopupWindow)的WindowManager已經沒有誰可以附屬了,是以它的窗體管理器已經洩漏了

解決辦法

關閉(finish)某個Activity前,要確定附屬在上面的Dialog或PopupWindow已經關閉(dismiss)