Android studio異步數據加載ListView+Adapter+AsyncTask

  最近系統學習了關於異步數據加載的相關知識,之前在項目中,這一塊不是由我負責,現在回顧一下,項目中沒有用到數據緩存,即每次用戶的請求都要去網絡獲取,網絡不好時,加載慢或者加載不出來,測試人員提出該問題時,沒有引起重視。之前我也經常會用到顯示網絡中獲取的圖片工具(其他同事編寫),但並不理解其中的緣故。

      這個例子具有很強的通用性,下載後以後再做異步數據加載,只需要根據需求少量修改即可。

      直接下載Demo

      需求

         1) ListView 橫向的item展示用戶的 頭像和 姓名;

         2) Adapter的顯示中緩存View並優化性能;

         3) 將已經加載的圖片加入緩存目錄(首選SD卡);

         4) 異步加載圖片;

         5) 關閉Activity後刪除緩存的內容。

         6) http中獲取xml數據,並解析成List<person>數據<Web端提供XMl數據>

      技術需求的相關解釋

         1Adapter的顯示中緩存View,是對convertView的重用。

         2Adapter優化性能,使用Holder可以避免每次調用getView時都會重新運行findViewById(),降低系統性能。

         3、緩存圖片至SD卡:如果image圖片內容太多,緩存在內存中會耗用過多的手機內存。

         4AsyncTask的使用:AsyncTask可以限制開啓線程的條數(線程池),避免使用Thread+Handler 造成的有多少條目就要開啓多少線程的情況(異步加載圖片,需要開啓子線程,如果不是異步加載圖片,會很容易導致應用無響應的情況)。

     注意

     本文中涉及到的圖片及person.xml文件已經打包到該項目的根目錄下,你如果要使用到你的項目中,需要修改url地址,我是採用的本地Tomcat,並且將images person.xml放在web端代碼的根目錄下,直接訪問的。實際的應用中,web端一般是從數據庫中讀取數據,通過Servlet方式,將響應返回給客戶端。

  最終效果

 

      Sd卡中的目錄及文件:


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章