如题,今天开发遇到一个问题,使用Dialog的时候遇到一个异常,信息如下:
android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.BinderProxy@406ab4c8 is not valid; is your activity running?
大概就是我弹出dialog的时候所依赖的Activity已经被弄死了。。
解决方法:
在调用show方法弹出dialog的时候检查一下Activity是否存在,
if(!isFinish()){
dialog.show();
}
当然这么做了之后异常是没有了,但是某些时候还是会导致dialog弹出失败
一般做项目都会封装BaseActivity,然后我创建dialog的时候上下文对象使用BaseActivity.this,
//getActivity是用来获得BaseActivity.this
dialog = new FinishNaviDialog(getActivity(), new TimeCount.onCountTimeFinishListener() {
@Override
public void onCountTimeFinish() {
BleHudIntentService.actionStopNavi(NaviActivity.this);
finish();
}
});
然后。。。没了…
—————————————2017年9月19日09:48:32——————————————————
本文介绍了在Android开发中遇到Dialog弹出导致的BadTokenException异常问题及解决方案。通过检查Activity是否存活来避免异常,并讨论了封装BaseActivity进行上下文管理的方法。
441

被折叠的 条评论
为什么被折叠?



