2

所以我一直在尝试使用像runOnUiThread()和视图的方法。AsyncTask设置图像视图

后更新从一类是主要的其中一个不延长活动的超出了我的形象的看法和我不断收到同样的问题:

它运行很好,但第一次当我重新启动了应用程序,图像视图不会再更新。

我可以使用AsyncTask类来获取位图,然后使用该位图设置图像视图吗?如果是这样,任何人都可以给我一个例子吗?

+0

AsyncTask没有引用onPreExecute()和onPostExecute()之外的Main UI线程。如果没有AsyncTask在doInBackground()方法执行过程中抛出异常,那么您将不得不做一些工作来完成这个工作。 – 2012-07-10 17:33:11

回答

2

如果你扩展了的AsyncTask这样

className类扩展的AsyncTask

你必须从doInBackground()返回一个位图,你会被重写onPostExecute(位图),这将在UI线程上运行,这意味着您可以将该位图设置为ImageView。

0

只有在worker thread上调用AsyncTasks的runInBackground()方法。其他方法在UI线程上调用,因此您可以使用它调用UI的更改。

您可以使用onPreExecute()作为开始时的进度条。

正如它所说的,您可以使用publishProgress()来发布您的任务的进度,比如说您已下载了多少百分比。

您可以使用onPostExecute()设置您的视图,如位图或您可能已下载的文本片段。