我的應用程序向用戶一個接一個地顯示圖像。圖像從服務器下載。由於我不希望用戶等待下載的圖像,我將它們緩存在本地文件系統中(例如新的50張圖像)。AsyncTask用於在後臺下載圖像
執行: 從onCreate方法啓動一個AsyncTask
,將繼續在後臺下載圖像。 是AsyncTask
最適合這種使用情況?我不想用一個Service
因爲我不想下載到連續發生
是AsyncTask
最適合這個目的是什麼?
我的應用程序向用戶一個接一個地顯示圖像。圖像從服務器下載。由於我不希望用戶等待下載的圖像,我將它們緩存在本地文件系統中(例如新的50張圖像)。AsyncTask用於在後臺下載圖像
執行: 從onCreate方法啓動一個AsyncTask
,將繼續在後臺下載圖像。 是AsyncTask
最適合這種使用情況?我不想用一個Service
因爲我不想下載到連續發生
是AsyncTask
最適合這個目的是什麼?
是的,你可以使用Asynctask來達到這個目的。而使用的AsyncTask「onProgressUpdate()的API中的一個,可以並行更新的用戶界面爲你的形象越來越下載。
您還需要在處理返回到UI線程時檢查UI的無效性。該活動可能已發送到背景,而ASyncTask正在做繁重的工作。 –
您可以使用universalImageLoader
庫以高效的方式下載圖像。
看到這how to use universal Image loader for downloading images
您的需求還有一個解決辦法是Volley Library
我會建議使用現有的庫,例如Picasso(以方)或Volley(由谷歌)。
畢加索是特別容易實現,而且會很好地工作,你的目的,並且是一樣簡單:爲庫通吃的這一點
Picasso.with(context).load("http://i.imgur.com/DvpvklR.png").into(imageView);
你不會有AsyncTasks或AsyncTaskLoaders擔心自己將你的雙手圖像緩存在內存和磁盤上。
如果你堅持建立自己的解決方案,我建議對相關問題東張西望,因爲有很多事情要牢記:
你也可以使用Volley。 –
畢加索(圖片加載庫)將有我的投票 - https://github.com/square/picasso –