2017-07-31 91 views
-6

我有一個自定義對話框,從中啓動BackgroundWorker異步任務,並且我想關閉BackgroundWorker後執行中的當前對話框,但我不知道如何獲取當前對話框,因爲我在另一個類中創建了它。如何關閉其他類中的當前對話框 - Android

非常感謝。

+0

您可以在該類中調用解除方法 –

+0

確保在關閉活動之前關閉對話框,否則您將面臨'android.view.WindowLeaked'異常。 –

+0

dimiss()就足夠onPostExecute – Qasim

回答

0

如果您要訪問您的對話框(DialogFragment擴展我猜)你有很多方法:

a)使您的BackgroundWorkerAsyncTask成爲您的DialogFragment的內部類,以便能夠訪問您父級的屬性。如果你在其他類中需要它(這就是爲什麼我認爲你使它成爲一個外部類),你可以在你的DialogFragment中有你自己的內部AsyncTask類,並從你的BackgroundWorkerAsyncTask中擴展它。

c)從您的BackgroundWorkerAsyncTask構造函數中傳遞您想要管理的對話框,並在您的postExecute中將其解除。

選擇任何適合您的需求。

0

只需使用:

alertDialogue.dismiss(); 
+0

但如何將alertDialogue與我目前打開的自定義對話框相鏈接? –

+0

發佈您的代碼.. –

+0

不需要我用另一個解決方案解決問題,我剛剛在我的BackgroundWorker中傳遞了我的Dialog的構造函數。謝謝 –

2

您可以通過不同的方式做到這一點。

  1. 通過對話框對象中的AsyncTask構造和使用該參考將其關閉。
  2. 傳遞類引用,並與refernce調用類的方法和方法中包含對話框駁回代碼
相關問題