1、Activity ... has leaked window com.Android.internal.policy.impl.PhoneWindow$... that was orifinally added here
解决办法;
在关闭当前Activity的同时,没有及时调用dismiss来解除对dialog的引用。解决办法:在活动跳转的同时要记得加上dialog.dismiss();
2、Caused by: android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.BinderProxy@42963e08 is not valid; is your activity running?
解决办法;
- if ( mDialog != null ) {
- Activity activity = mDialog.getOwnerActivity();
- if ( activity != null && !activity.isFinishing() ) {
- mDialog.show();
- }
- }
3、21:03:18.027: E/AndroidRuntime(6197): java.lang.IllegalArgumentException: View not attached to window manager 原因:Dialog在dismiss得时候是通过直接从WindowManager remove操作来完成的。当Activity被销毁后,此时的Dialog处于游离状态,在remove的时候会迭代,如果发现此View没有在数组mViews中时讲抛出IllegalArgumentException("View not attached to window manager")异常
解决办法
创建Dialog的时候设置该Dialog所属的Activity,在dismiss的时候根据此activity的状态来决定是否dismiss此dialog