我一直收到此错误,但不确定为什么
java.lang.IllegalArgumentException: View not attached to window manager
at android.view.WindowManagerImpl.findViewLocked(WindowManagerImpl.java:587)
at android.view.WindowManagerImpl.removeView(WindowManagerImpl.java:324)
at android.view.WindowManagerImpl$CompatModeWrapper.removeView(WindowManagerImpl.java:151)
at android.app.Dialog.dismissDialog(Dialog.java:328)
at android.app.Dialog$1.run(Dialog.java:119)
at android.app.Dialog.dismiss(Dialog.java:313)
它发生在这段代码中
@Override
protected void onPostExecute(Void result) {
if(!isFinishing() && dialog.isShowing()){
dialog.dismiss(); <-------- HERE IT HAPPENS
}
}
知道为什么吗?我确保活动没有完成,并且在解雇前显示对话框!
这通常发生在Activity
在AsyncTask
完成之前可能已完成或处于暂停状态时。 onPause
Activity
将对话框设置为 null 或将其关闭
@Override
protected void onPostExecute(Void result) {
if(!isPaused && dialog.isShowing()){
dialog.dismiss(); <-------- HERE IT HAPPENS
}
}
boolean isPaused;
@Override
protected void onPause() {
super.onPause();
isPaused = true;
}
@Override
protected void onResume() {
super.onResume();
isPaused = false;
if(dialog.isShowing() && (asyncFinishedCheck)){
//Dismiss code goes here
}
}