android.view.WindowManager$BadTokenException: Unable to add window – token android.os.BinderProxy@9950cea is not valid; is your activity running?
之所以出现这个问题是因为在activity界面加载出来之前我这手速太快点击弹出了一个dialog,然后就出错了,找了很多的方法都不适用。网上大多的说法是判断一下activity是否finished。但是这份在我这个情况下不太适合。然后看到了一个大兄弟的做法,是做一个不依赖activity的系统性的dialog,我觉得很棒 这是原博主的地址 https://www.cnblogs.com/diyishijian/p/5912838.html
然后我这借鉴上面博主的做法,对window设置一个type,然后问题完美解决
final Dialog dialog = new Dialog(mC, R.style.SquareEntranceDialogStyle);
Window window = dialog.getWindow();
window.setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
if (window != null) {
window.setFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND,
WindowManager.LayoutParams.FLAG_BLUR_BEHIND);
window.setGravity(Gravity.BOTTOM);
}
View layout = View.inflate(mC, R.layout.activity_fast_create, null);
dialog.setContentView(layout);
dialog.show();
//之后的该做点击做点击该做动画做动画