Unable to add window -- token android.os.BinderProxy@bf4921f is not valid

这种异常通常出现在:显示弹窗的时候,弹窗所依赖的上下文Activity已经被销毁了。
当然一般情况下,这种情况很少出现,但是当弹窗是在子线程和Handler通信过程创建时,就很容易出现这种问题。
线程耗时操作,决定了事件响应具有一定的时间差,所以当你点击某个Button时,它的弹窗没有及时显示,但是这时候你已经把当前Activity退出,这时候凑巧的是,弹窗创建代码执行,但是他的上下文已经不见了,所以就出现了这个问题。
要解决这个问题需要在弹窗显示的时候,判断弹窗的上下文是否存在,如果存在就显示弹窗,如果不存在就直接不显示。
activity!=null && !activity.isFinishing();

猜你喜欢

转载自blog.csdn.net/qq_35920289/article/details/78414702