我有應用程序發送(多個文本文件)到服務器和進度條更新每個文件發送&得到迴應。一旦所有文件都發送完畢,它將被解僱。AsyncTask和進度條
我已經通過調用循環內的發送函數並且進度條得到更新來成功實現了這一點。現在我想AsyncTask爲每個文件執行http請求,同時進度條也會被更新。
如何定義AsyncTask發送特定文件並獲取響應。在發送的每個文件上,進度條也會更新?
任何幫助將非常感激。
感謝
薩姆
我有應用程序發送(多個文本文件)到服務器和進度條更新每個文件發送&得到迴應。一旦所有文件都發送完畢,它將被解僱。AsyncTask和進度條
我已經通過調用循環內的發送函數並且進度條得到更新來成功實現了這一點。現在我想AsyncTask爲每個文件執行http請求,同時進度條也會被更新。
如何定義AsyncTask發送特定文件並獲取響應。在發送的每個文件上,進度條也會更新?
任何幫助將非常感激。
感謝
薩姆
如果您想更新您的ProgressBar
,而在你的AsyncTask
仍在執行,你應該......
在AsyncTask
落實onProgressUpdate(...)
方法。
呼叫,當你想在doInBackground(...)
更新您的進度條publishProgress(...)
有這樣的AsyncTask documentation一個例子。
您必須從主/ UI線程中調用AsyncTask。您不能從後臺線程啓動AsyncTask。 嘗試從onCreate()調用new PostDataAsyncTask().execute(currentFile)
。 正如Yjay提到的,您可以使用onProgressUpdate()
和publishProgress()
來更新ProgressBar的值。
這已被問及在許多地方回答。關鍵是使用doInBackground()
方法來執行網絡活動,然後可以根據需要從那裏調用publishProgress()
以更新對話框。您還需要覆蓋onProgressUpdate()
,因爲這是由publishProgress()
調用的方法,並且將是您爲對話框添加代碼的位置。
究竟你想知道些什麼?如何將參數傳遞給AsyncTask?或者如何從Asynctask更新ProgressBar? – fifarunnerr
我調用'新的PostDataAsyncTask().exec(currentFile)'在進度條的循環內,它會拋出異常,即無法在非UI線程中調用AsyncTask。然後,我如何更新ProgressBar,以及在哪裏創建AsyncTask實例? – Sam