0
此函數在UiThread上運行,但似乎並不意味着它也可以訪問活動上下文。我應該向我的AsyncTask實施一個公共設置器來傳遞活動(作爲參考)嗎?我是否還必須將ActivityContext傳遞給AsyncTask才能操作視圖?
protected void onPostExecute(Bitmap bitmap) {
//following is underlined red due to missing context
(ImageView)findViewById(ResId)).setImageBitmap(bitmap);
}
@ 1:我在一個新文件中創建了這個類,因爲我想在我的所有Activities中使用這個泛型類。所以,我想這不會起作用。不過,我已經在我的「AppController」中存儲了ApplicationContext的引用,我可以從我的代碼的任何位置訪問它。但是通過將ActivityContext傳遞給ApplicationContext並沒有太大的區別。或者,在那裏?我有時覺得,ApplicationContext有點慢。最重要的是,我實際上並不認爲你可以通過應用程序上下文訪問findViewById方法,而不是活動的上下文。 – OneWorld 2010-10-13 13:18:59
@ 2:所以在這裏你建議我不要傳遞上下文,而只傳遞所需的ImageView對象的引用。我認爲這是一個好方法,因爲我只需要「findViewById」的上下文。在傳遞上下文而不是傳遞ImageView對象方面,性能方面是否更昂貴? – OneWorld 2010-10-13 13:22:13
好吧,然後選項2將是我猜的更好的解決方案。我不確切知道哪種對象類型需要更多的資源,但對於我來說,一個Context對象似乎比單個ImageView要「重得多」。 – Flo 2010-10-13 15:23:35