我是android開發新手。我想完成描述任務如下:處理UI的Android異步任務
- 主activty它調用外部類(其他類將擴大
AsyncTask
)來解析xml
和請求的Web服務接收json
並啓動ProgressDialog
。 - 該類執行
xml
和json
解析其doInBackground
方法。 - 在解析完成後的
onPostExecute
方法中,關閉主活動中設置的ProgressDialog
。 - 我可以通過將ProgressDialog對象傳遞給解析類並在其
onPostExecute
方法中關閉同一對象。
我想通過UI對象的實例作爲參數不是一個好方法程序,希望必須有一些其他的方式來解決。
請建議。 謝謝
+1 :)在理論上,他仍然會這樣,我引用了「將實例傳遞給AsyncTask」。我想知道OP是否在印象之下複製整個實例? – JustDanyul
好點。就像在Java中所有這樣的調用中一樣,實例不會被複制,這既是好事也是壞事。好,因爲它不會創建沒有好理由的對象。不好的,因爲這可能是內存泄漏的來源,特別是如果異步任務需要在配置更改的情況下繼續工作,會導致活動中斷。 –
是的,如果參考未清除,您將在方向開關上泄漏原始活動及其所有視圖。當活動正在消失時,您需要處理這種情況,並在活動重新創建後分離並重新附加。 – dmon