android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.BinderProxy is not valid; is your activity running?
静态的Activity类型的Context作为参数传入Dialog,APP退出,Dialog调用dismiss()后,Context没有置null。再次进入APP,Dialog的参数Context,还是APP退出前的Activity对象。在调用Dialog的show()方法后,就会出现上述错误。
1.不要把Activity赋值给静态Context,这样Activity对象无法释放,容易造成内存泄漏。
2.在调用Dialog的dismiss()时,记得给Context置null。确保每次在new Dialog对象的时候,用到的都是当前Activity类型的Context。
if (null != sDialog && sDialog.isShowing()){
sDialog.dismiss();
sDialog = null;
if (null != sContext){
sContext = null;
}
Log.d(TAG, "dismiss: sDialog = " + sDialog + " , sContext = " + sContext);
}