关于android "is not valid; is your activity running?"的bug

     今天组内的小伙伴,碰到了一个Android异常,当时正好也是闲着,帮忙看了下。
 
android.view.WindowManager$BadTokenException:
Unable to add window -- token android.os.BinderProxy @443b7270 is not valid; is your activity running
 
    第一眼看到这个,我就说,你那边是不是有个activity,要用的时候被异常关闭了吧。
然后顺着这条思路走下去,发现Activity根本没有关闭。所以这条路放弃了。
 
    坐下来研究了一下:这是一个tab主页面,内部加载了几个tab子页面。而他的需求是在某个tab子页面中,接收到了某种广播,然后弹一个
dialog出来,简单的需求,但是始终是报错
 
       跟了下代码发现,那个tab子页面会根据内容动态变更view。所以这边弹出dialog的地方不能放在这里。
        new CommonAlertDialog(xxx.this, xxx, xxx).show();
   因为view 改变之后 这个xxx.this 就不是原来的xxx.this了,所以最佳的做法还是放在tab主页面里边弹dialog,父tab的context是不会变的。
 
    另外tab这种东西已经淘汰了。
    偶尔碰到,希望改别人老代码bug的小伙伴不要碰到这种坑了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值