09-20 17:39:41.196: E/AndroidRuntime(32388): android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.BinderProxy@45907880 is not valid; is your activity running?
这个bug会有好多情况导致。我分析主要原因是在一个已经finish掉的activity中执行了依赖于这个activity的操作。
1)我遇到的情况之一是:
我的activity有个handler接受一些服务端发送过来的消息。当这个activity被finnish掉之后,消息到达了,导致此bug。
我的解决方案:
重写handler的dispatchMessage方法:
@Override
public void dispatchMessage(Message msg) {
if (!isActivityFinished)
super.dispatchMessage(msg);
}
如果activity已经finish了,就不要再分发消息了。
应该还会有其它的原因导致这个bug,遇到之后再添加。