Android问题集(4):Unable to add window -- token android.os.BinderProxy@bf4921f is not valid;

问题描述公司某个产品有反馈,说是在进入某个界面时容易引发崩溃,要到了泵哭日志后发现,确实爆出了一个异常,非必现,偶发bug,一看就大概明白是啥原因了,自己就写了个demo,复现了这个问题,下面是报错日志E/AndroidRuntime: FATAL EXCEPTION: main Process: com.wisely, PID: 12063
摘要由CSDN通过智能技术生成

问题描述

公司某个产品有反馈,说是在进入某个界面时容易引发崩溃,要到了崩溃日志后发现,确实爆出了一个异常,非必现,偶发bug,一看就大概明白是啥原因了,自己就写了个demo,复现了这个问题,下面是报错日志

E/AndroidRuntime: FATAL EXCEPTION: main
                  Process: com.wisely, PID: 12063
                  android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.BinderProxy@bf4921f is not valid; is your activity running?
                      at android.view.ViewRootImpl.setView(ViewRootImpl.java:696)
                      at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:347)
                      at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:94)
                      at android.app.Dialog.show(Dialog.java:319)
                      at com.wisely.DialogUtil.showProgressDialog(DialogUtil.java:54)
                      at com.wisely.DialogUtil.showProgressDialog(DialogUtil.java:16)
                      at com.wisely.activity.bug.WindowDestroyBugActivity$1.handleMessage(WindowDestroyBugActivity.java:29)
                      at android.os.Handler.dispatchMessage(Handler.java:102)
                      at android.os.Looper.loop(Looper.java:154)
                      at android.app.ActivityThread.main(ActivityThread.java:6114)
                      at java.lang.reflect.Method.invoke(Native Method)
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:874)
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:764)

复现bug的代码

xml比较简单,未列出,当前Activity继承了一个自己写的BaseActivity,其实什么都没做,而且我本身也不建议这种抽取,不过因为这是我的demo集,场景特殊,所以才抽取了这个BaseActivity。
注意,下面的代码是有问题的代码,切勿复制粘贴

public class WindowDestroyBugActivity extends BaseActivity {
   

    Handler mHandler = new Handler() {
        @Override
        public void handleMessage(Message msg) {

            switch (msg.what) {
                case 1:
                    DialogUtil.showProgressDialog(WindowDestroyBugActivity.this, "弹窗喽");
                    break;

            }

        }
    };

    /**
     * 点击事件的回调,在xml中写的
     */
    public void onClick(View v) {

        switch (v.getId()) {

            case R.id.tv_unable_to_add_window_finish:
                finish();
                mHandler.sendEmptyMessageDelayed(1, 3000);
                break;
        }
    }

    @Override
    public int getLayoutResource() {
        return R.layout.activity_unable_to_add_window;
    }

    @Override
    public String getTitleContent() {
        return "Unable to add window——token android.os.BinderProxy@2ed5fc06 is not valid;is your activity running?";
    }


}
/**
  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值