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()設置您的視圖,如位圖或您可能已下載的文本片段。