2014-02-10 28 views
2

我不斷收到這個錯誤,但我不知道爲什麼查看沒有連接到窗口管理器:雖然我有預防代碼

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 
     } 
    } 

任何想法,爲什麼會發生?我正在確保活動未完成,並且在解僱之前對話框顯示!

回答

0

這通常發生在AsyncTask完成之前Activity可能已經完成或處於暫停狀態。在Activity的設置對話框爲空或駁回

@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 
    } 
} 
+0

但我發現的代碼 – Snake

+0

但仍活動可以去的onPause沙爹,isFinishing只會我不是貶它isFinishing或對話框不顯示時當活動即將完成(殺死)時返回true。不是當活動進入onPause狀態時 – Triode

+0

因此,當活動恢復時,是否默認關閉對話框? – Snake

相關問題