您的位置:首页 > 移动开发 > Android开发

运行异常:android.view.WindowManager$BadTokenException:is not valid; is your activity running?

2014-04-23 18:11 417 查看
在项目中经常会遇到各种各样的问题:

下面就分享一下我的问题:



这个项目使用的架构TabHost以实现像新浪微博一样的页面效果。在个人中心的那个tab页面,需求是:由在未登录的情况下,个人中心tab页面显示登录页面;然后登录成功之后需要在本页卡基础之上跳转到个人中心页面<保持下面的页卡tab不变>。

基于这个需求,我使用了ActivityGroup来控制。但是问题出现了,当我从登录页面登陆成功之后跳转到个人中心页面。有一Button控制着微博绑定的注销,当点击时候需要弹出一对话框来提示是否确定解绑!当点击解绑的时候就报错了,就是上面的错误提示。

下面给出错误原因:

之所以在该Activity弹出错误信息,是因为show处的对话框是依附于当前的Activity,即:AlertDialog.Builder dialog = new Builder(this)。但是当前的Activity是属于子类的Activity且是动态建立的,有随时被kill的能。所以,基于该子Activity弹出的对话框会不稳定,因此报错。

给出解决方法:

//防止报错使用getParent()
AlertDialog.Builder dialog = new Builder(getParent());
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐