【发布时间】:2014-02-25 13:44:10
【问题描述】:
我在列表视图中显示了网页下载百分比的进度条。
for(int i=0;i< 5;i++)
{
new UploadTask(i).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, "http://www.google.com");
}
我的上传任务
public class UploadTask extends AsyncTask<String, Void, String>
{
int id;
public UploadTask(int id) {
this.id = id;
}
@Override
protected String doInBackground(String... params) {
try {
return HttpUrlConnection.getContentFromUrl(params[0], listener);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
return "";
}
}
HttpListener listener = new HttpListener() {
@Override
public void processCompletion(int x) {
publishProgress(x);
}
};
public void publishProgress(Integer... ints) {
progressLevelList.set(id, ints[0]);
uploadAdapter.notifyDataSetChanged();
}
}
但是当我通知适配器时出现以下错误。
java.lang.RuntimeException: An error occured while executing doInBackground()
Caused by: android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
如何解决这个错误?
【问题讨论】:
标签: android