dialog crashed.
时间: 2023-10-21 12:22:21 浏览: 87
当Dialog在Activity的生命周期内未被正确关闭时,可能会导致dialog crashed错误。比如,在界面上显示一个Dialog,当任务处理结束后再Dismiss Dialog。如果在Dialog显示期间,该Activity因为某种原因被杀掉且又重新启动了,那么当任务结束时,Dismiss Dialog的时候WindowManager检查,就会发现该Dialog所属的Activity已经不存在了(重新启动了一次,是一个新的Activity),所以会报IllegalArgumentException:View not attached to window manager错误。这种情况下,就会发生窗口泄漏(leaked window)。因此,为了避免dialog crashed错误,需要在Activity的生命周期内确保Dialog正确关闭,可以在Activity的onDestroy()方法中调用closeDialog()方法来关闭Dialog。在closeDialog()方法中,先判断Dialog是否存在且正在显示,如果是,则调用dismiss()方法来关闭Dialog。这样可以确保Dialog的生命周期与Activity一致,避免了窗口泄漏的问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [Android dialog 问题](https://blog.csdn.net/dieji7118/article/details/102338625)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
阅读全文