android.view.WindowManager$BadTokenException

来源:互联网 发布:淘宝商城男装休闲t恤 编辑:程序博客网 时间:2024/05/22 12:31

下面是bugly崩溃日志显示的出现问题打印信息:

android.view.WindowManager$BadTokenExceptionUnable to add window -- token android.os.BinderProxy@2046875b is not valid; is your activity running?解析原始1 android.view.ViewRootImpl.setView(ViewRootImpl.java:585)2 android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:282)3 android.view.WindowManagerImpl.addView(WindowManagerImpl.java:90)4 android.app.Dialog.show(Dialog.java:298)
  • 原因分析:

    • 要弹出一个Dialog,不过当前的对象已经或正在被销毁。所以在创建Dialog时应该传入当前的对象要是当时对象,在show前先判断一下当时对象是否还存在。
  • 解决方案:

    • 传入的对象要用当前对象,尽量用Activity.this的形式传进去:
      new AlertDialog.Builder(getApplicationContext()) 改为->new AlertDialog.Builder(XXXActivity.this)

    • 判断当时对象是否被销毁
      if (!CourseDetailsActivity.this.isFinishing()){
      builder.create().show();
      }

原创粉丝点击