下面是bugly崩溃日志显示的出现问题打印信息:
android.view.WindowManager$BadTokenException
Unable 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();
}