2014-01-07 18 views
0

我有一個AsyncTask正在運行。如果應用程序是停止(電話,應用程序切換等),我的理解是onPostExecute()永遠不會被調用。所以,只要取消(true)用於取消AsyncTask,正在運行的任務將被通知取消。我不介意在isCancelled()定期在doInBackground(),但我所關心的是publishProgress()在doInBackground中散佈的調用。我的理解是onProgressUpdate()在主UI線程上運行。應用程序停止後,在AsyncTask中調用publishProgress()是否安全?

這是否意味着任何對publishProgress()的調用會在應用程序停止時崩潰?或者它只是任何UI更新 onProgressUpdate(),這將導致應用程序已停止時崩潰。

我問的原因是因爲我想知道如果我必須限定每個publishProgress()調用isCancelled(支票)或可我只是之前檢查一次onProgressUpdate()實際上試圖更新任何UI組件。

+0

我會等待別人有更多的經驗比我在這裏附和,但基於我已經運行一些測試,它似乎是在回答我的問題是肯定的。 – RTF

回答

2

Android文檔狀態:如果任務已經取消

onProgressUpdate(進展...)將不會被調用。 developer.android.com/...AsyncTask#publishProgress

+0

這太好了,所以在任務被取消時讓publishProgress()調用完成他們的事情是絕對安全的,但它不會產生任何效果。謝謝。 – RTF

相關問題