Exception - Dialog Unable to add window

关键字:

android.View.WindowManager$BadTokenException:Unable to add window -- token android.os.BinderProxy@2eaceca3

这个错误真的是太常见了,原因就是dialog的show(注意不是创建)依赖的是窗体的context,实际就是activity,所以当activity finish了以后调用dialog的show方法就会出错。

解决方法也很简单:

dialog show之前判断下窗体是否还存在:

if(null != context && context instanceof Activity && !((Activity) context).isFinishing()) {

builder.show();

}

扩展:popwindow也是需要依托窗体存在的。

有篇文章不错:http://dimitar.me/android-displaying-dialogs-from-background-threads/

你可能感兴趣的:(Exception - Dialog Unable to add window)