美文网首页
[转]Unable to add window -- token

[转]Unable to add window -- token

作者: 努力深耕Android的小透明 | 来源:发表于2018-06-12 08:45 被阅读18次

    有一次在项目中用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;
        }
    

    相关文章

      网友评论

          本文标题:[转]Unable to add window -- token

          本文链接:https://www.haomeiwen.com/subject/lwvhjftx.html