android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.BinderProxy@9

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();
//之后的该做点击做点击该做动画做动画
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值