2015-10-14 64 views
0

我的應用程序中存在ProgressDialog問題。 我在後臺執行一些任務,並使用處理程序將操作通知給我的Activity。 有時候,並非總是如此,當我試圖表明我的對話框的應用程序崩潰並出現此異常:在Android中顯示對話框產生崩潰

android.view.windowleaked 

對話的方式展開:

try { 
    pd = new ProgressDialog(VoiceAcquisitionActivity.this); 
    pd.setMessage("blablabla"); 
    pd.setCancelable(false); 
    pd.show(); 
} catch (Exception e) { 
    e.printStackTrace(); 
} 

我讀過這個例外是正常的在.dismiss()操作但是在.show() ??

我該如何避免這個問題?

感謝

+2

是您的活動運行? – Blackbelt

+0

是的,因爲此代碼在活動 – user3086708

+0

中被調用,對不起,您是否可以刪除我的軟件包名稱?謝謝 – user3086708

回答

1

安全你可以包裝在類似的代碼塊你的對話邏輯:

if(!isFinishing()){ 

     pd = newProgressDialog(VoiceAcquisitionActivity.this);         
     pd.setMessage("Loading message"); 
     pd.setCancelable(false); 
     pd.show(); 
    } 
+0

我不認爲這個解決方案修復了,因爲活動沒有完成,當收到此消息 – user3086708

+0

@ user3086708這是一個安全檢查,因爲,如果您的活動正在完成,它不會嘗試顯示對話框沒有上下文的活動。看來問題在於你的活動崩潰了,你試圖在這次崩潰期間顯示一個對話框。請發佈完整的堆棧跟蹤 –