我創建了一個AsyncTask
來執行我的後臺操作。用戶界面顯示ProgressDialog
。我將Context
傳遞給AsyncTask
的構造函數。後臺操作和ProgressDialog
當我想操作ProgressDialog
文本AsyncTask
它錯誤,因爲ProgressDialog
框由另一個線程創建。
關於如何使AsyncTask
與ProgressDialog
箱子通信的提示或想法,或創建ProgressDialog
箱子的更好方法?
我創建了一個AsyncTask
來執行我的後臺操作。用戶界面顯示ProgressDialog
。我將Context
傳遞給AsyncTask
的構造函數。後臺操作和ProgressDialog
當我想操作ProgressDialog
文本AsyncTask
它錯誤,因爲ProgressDialog
框由另一個線程創建。
關於如何使AsyncTask
與ProgressDialog
箱子通信的提示或想法,或創建ProgressDialog
箱子的更好方法?
您不應該從AsyncTask
的doInBackground
函數與UI進行通信。改用onProgressUpdate
函數。
private class BackgrounTask extends AsyncTask<Integer, Integer, Integer> {
protected Integer doInBackground(Integer... count){
int max = count[0];
for (int i = 0; i < count; i++) {
publishProgress(i, max);
}
return max;
}
protected void onProgressUpdate(Integer... progress) {
int cur = progress[0];
int max = progress[1];
//update your progress dialog here
}
protected void onPostExecute(Integer result) {
//process result
}
}
使用AsyncTask.publishProgress()
方法並覆蓋AsyncTask.onProgressUpdate()
方法。在這個方法中更新你的進度對話框。
得到它的工作,謝謝你的問題編輯和awnser! – 2011-06-02 00:16:00