BadTokenException异常
今天程序在bugtags里面上传一个BadTokenException异常。看了挺久程序,查了资料,才发现出来问题所在。
以下是报异常的信息
android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.BinderProxy@c8b986e is not valid; is your activity running?
这句话的意思是,因为一个绑定的代理不可用,所以没办法在把一个控件加到窗口中。问你是不是activity在运行着?
常见场景:要在窗口中弹出一个POP窗口或者一个dialog。
这里主要的原因是:可能是因为在异步线程中,执行完操作后,要在UI线程中更新操作;但是呢,你的activity已经被销毁了,找不到一个可以依附的窗口,就报异常了。
这里有可以有几个解决方法
1、在更新UI的操作前,判断要依附的窗口是否还存在。
2、捕获异常。