Unable to add window --token null is not valid; is your activity running

项目中经常会用到的组件PopupWindow,而运用它时往往会用到它的方法showAtLocation(),所以,我们在运用不当时会出现crash的现象,原因就是view还没有加载完毕,这时就要显示PopupWindow,所以导致异常。

这样类似的情况,我们会遇到的报错信息如下:
Unable to add window --token null is not valid; is your activity running
问题一般会出现在华为honor和小米手机上
原因:

PopupWindow.showAtLocation(findViewById(R.id.main), Gravity.BOTTOM,0,0);
popwindow必须依附于某一个view,而在oncreate中view还没有加载完毕,必须要等activity的生命周期函数全部执行完毕,你需要依附的view加载好后才可以执行popwindow。

解决方法:

延时1s执行

findviewById(R.id.mView).postDelay(new Runnable() {  
    @Override  
    public void run() {  
        popwindow.showAtLocation(mView, Gravity.CENTER, 0, 0);  
    }  
},1000);  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值