我创建了一个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