关于Activity 创建Dialog问题

java.lang.IllegalArgumentException: View=com.android.internal.policy.impl.PhoneWindow$DecorView{296c763 V.E..... R.....I. 0,0-600,200} not attached to window manager
at android.view.WindowManagerGlobal.findViewLocked(WindowManagerGlobal.java:394)
at android.view.WindowManagerGlobal.removeView(WindowManagerGlobal.java:320)
at android.view.WindowManagerImpl.removeViewImmediate(WindowManagerImpl.java:84)
at android.app.Dialog.dismissDialog(Dialog.java:341)
at android.app.Dialog.dismiss(Dialog.java:324)


分析错误日志,Dialog是在Activity中,手动创建的,当Dismiss时,找不到此Activity,由此异常。

解决方案:

一、使用DialogFragment,这样dialog会依附于activity,不用自己管理。

二、自己创建Dialog时,其生命周期必须和activity保持同步。




版权声明:本文为qjsjp原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。