Android开发~android.view.WindowManager$BadTokenException: Unable to add window -- token android.os....

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

猜你喜欢

转载自blog.csdn.net/pkandroid/article/details/78026569