[转]Unable to add window -- token android.os.BinderProxy@164db98f is not valid解决办法

有一次在项目中用Dialog的时候出现了闪退,报了一个“Unable to add window -- token android.os.BinderProxy@164db98f is not valid; is your activity running?”的异常;

我出现异常的情况是进入一个页面,等这个页面的数据加载完后弹出一个dialog,但是我在dialog还没弹出的时候就finish掉了这个页面,这个时候就会出现如上的异常情况。出现这种情况,我的分析是在dialog还没有显示的时候就finish掉了它要显示的Activity,所以等它显示的时候,它要显示的Activity已经finish了;

解决办法如下:

//在dialog show之前判断一下
if (!getActivity(mLoadingDialog.getContext()).isFinishing()) {
            mLoadingDialog.show();
        }

private Activity getActivity(Context context) {
        while (!(context instanceof Activity) && context instanceof ContextWrapper) {
            context = ((ContextWrapper) context).getBaseContext();
        }
        if (context instanceof Activity) {
            return (Activity) context;
        }else
            return null;
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容