0

我有一個包含ViewPager的HomeScreenActivity,它包含3頁。現在,我想下載通過異步任務的一些內容,以顯示它內部的第1頁。異步任務適配器的效率

流量的代碼:

HomeActivity - 在這裏我設置viewpager適配器。

HomeViewPagerAdapter

CustomAsyncTask

CustomAsyncTaskInterface - 通知內容的下載。

從適配器一個很好的方法調用的AsyncTask?或者我應該從HomeActivity中做到這一點?

+0

取決於你在的AsyncTask –

+0

我覺得做什麼,的AsyncTask僅用於下載內容。 –

+0

當然,但是有什麼內容? HTML,JSON,圖像,其他媒體文件? –

回答

0

我認爲,更好的辦法是設置在的AsyncTask的方法onPostExecute適配器,因爲那裏你會知道的AsyncTask已執行完畢。

1

如果的AsyncTask應該建立適配器的數據列表中,那麼就應該從含有適配器的活動/片段跑。您將在onPostExecute中設置或通知適配器。

如果是的AsyncTask下載數據每個適配器項目,那麼它應該是適配器類,稱爲getView的一部分,並更新從onPostExecute的getItem(position)元素。


例如,假設你有一個包含一個圖像URL數據的列表,但該適配器只需要顯示項目的標題,不會立即顯示圖像。這第一次的AsyncTask獲取數據列表中的所有項目變爲在活動

您只需要顯示圖像當你點擊一個項目,或獲取有關的東西的更多細節。在這種情況下,獲取更多數據的輔助AsyncTask(特別是特定項目)位於適配器中。

+0

你可以給出做所有這些內部活動而不是內部適配器的原因嗎? –

+0

不知道你是什麼意思的「所有這一切」。我建議不要做比顯示要在特定時間顯示的數據更多的網絡請求 –

+1

@adbhi_bond:適配器顯示您已擁有的數據。活動從潛在的多個來源收集數據。這是關於問題的分離。 – DeeV