我有一个 AsyncTask 更新 ActionBarSherlock 进度实现。尽管 onProgressUpdate 声称在 UI 线程上执行,但它以某种方式引发了线程错误。
protected void onProgressUpdate(Integer... values)
{
setSupportProgress(values[0]);
}
错误是:
03-06 00:13:11.672: E/AndroidRuntime(4183): at com.anthonymandra.framework.GalleryActivity$ShareTask.onProgressUpdate(GalleryActivity.java:476)
只有创建视图层次结构的原始线程才能接触其视图。
据我所知,我应该为此访问 UI 线程...
我的应用程序中有许多正在工作的 AsyncTasks,但根据要求,这里是 doInBackground(简化版):
for (MediaObject image : toShare)
{
BufferedInputStream imageData = image.getThumbStream();
File swapFile = getSwapFile(...);
write(swapFile, imageData);
++completed;
float progress = (float) completed / toShare.size();
int progressLocation = (int) Math.ceil(progressRange * progress);
onProgressUpdate(progressLocation);
}