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

解决android.view.WindowManager$BadTokenException: Unable to add window -- token .

2014-05-05 14:25 609 查看
最近遇到这样的一个问题,在dialog添加
“android.view.WindowManager$BadTokenException: Unable to add window -- token android.app.LocalActivityManager$LocalActivityRecord@435def20 is not valid;
is your activity running? ”
这样的异常,后来经过研究查资料发现,原来当一个activity(A)依附于另一个activity(B)时,弹出对话框就会报错,原因在于activity B 有可能会被系统回收,这样就不能保证程序的正常运行。所以在A中创建Dialog时,传递的上下文对象不能是当前的activity而应该是依附的那个activity对象(该对象可以通过getParent方法得到)。

上述情况外可能还有一种情况,就是在activity还没有创建窗口,所以你是没有依附的。所以在显示dialog的时候尽量不要放在oncreat里面。要放在他外面,保证window创建完整后在显示dialog。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐