2014-06-15 62 views
0

我正在開發一個基本結構的Android應用程序:從AsyncTask實施者請求某些操作的活動。實現者有3個自定義方法,應該能夠用一個對話框更新UI線程,以及一個postExecute(),如果拋出異常,它應該用一個失敗者對話框更新UI線程。這裏有一些問題:關於使用對話框更新UI線程的AsyncTask

  1. 我應該在哪裏創建對話框對象?在活動類或AsyncTask實現者中?我應該遵循什麼樣的通用準則?
  2. 我可以使用對話框更新UI線程而無需等待postExecute()嗎?
  3. 如何更新UI線程與圖片?我應該創建一個自定義對話框還是有一個更簡單的方法?
  4. 如果更新(與圖片對話)一個接一個地出現,那麼我應該如何處理?我應該創建某種隊列嗎?你會怎麼做?

預先感謝您:)

回答

1

1)有幾個不同的方法可以做到這一點。但我個人通常在AsyncTask的onPreExecute中創建對話框,以便該任務的UI完全自包含。

2)是的。您可以在onProgressUpdate中執行此操作。 doInBackground應該調用publishProgress(),這會導致在UI線程上調用onProgressUpdate。

3)太少的細節 - 你想要的照片?在現有的圖像視圖?在當前的佈局之上?如果您只是想在對話框中顯示它,則具有自定義佈局的AlertDialog可能會工作。

4)取決於應用程序。您是否希望用戶看到所有圖像,或者如果發送新圖像,可以在中間丟失圖像嗎?

+0

謝謝你的幫助Gebe。至於(3) - 我想創建一個對話框,並在屏幕中央提供一個圖片,用於保存圖像(並將其保存到數據庫)或放棄它。至於(4) - 我一次只想要一個對話框,但我不想停止執行返回圖片的ASynTask實現者 - 如果我不阻止AsynTask,我認爲這將有助於性能,因爲對話框是顯示,但爲此,我需要某種臨時存儲 - 您對這兩個建議有什麼建議? –

+0

對於3,一個以ImageView爲中心的AlertDialog對你來說會很好用。 –

+0

謝謝,我接受這個答案:) –