如题,今天开发遇到一个问题,使用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——————————————————