Unable to add window -- token android.os.BinderProxy@598a76f is not valid; is your activity running
bug 复现 :在一个finish之后的Activity,show出个Dialog.
这一点在网上搜一下就会解决,那么说说我出现的问题!
使用网上通用做法,在activity中弹出对话框的前加
//当前上下文是activity
if(!isFinishing()){
dialog.show();
}
但是并没有什么卵用!
废话不多说!问题出在
public static SeekBarDialog newInstance() {
if(seekBarDialog!=null){//bug原因,这东西我给弄成了静态的,下次再进去的时候不new了
seekBarDialog = new SeekBarDialog();
return seekBarDialog;
}
}
因为Dialog只有一个对象了,在页面中show之后,就持有了当前activity了,第一次showDilog的时候不会出现问题,再进去就会出现这个问题了,因为前一个activity已经销毁,而因为静态的导致下次show的时候上下文对象还是前一个,而不是当前的。修改之后
public static SeekBarDialog newInstance() {
seekBarDialog = new SeekBarDialog();
return seekBarDialog;
}
}
这次bug出现的原因,手残!!!!!!!!!!!!!!!!
网友评论