我在爲Android構建一個新聞閱讀器,第一個活動將顯示最新消息的列表以及縮略圖預覽圖像。 爲了得到縮略圖,我必須運行一個方法,這會大大增加加載時間;所以,我想創建一個單獨的線程來運行每一次。 更具體地說,我想先加載新聞標題,然後逐個加載圖片;同時做所有這些我不希望UI被鎖定(例如,如果用戶觸摸消息,我希望應用程序加載它,即使這些縮略圖仍然在加載)。 我的問題是:我應該使用處理程序(每個新聞一個線程)還是AsyncTask(每個新聞一個asyncTask對象)來實現這個目標?
謝謝你的回覆。加載Android UI以避免鎖定
0
A
回答
0
我會用一個的AsyncTask下載所有的「新聞鏈接」,然後有一個的AsyncTask調用的AsyncTask下載每個縮略圖和更新UI onPostExecute。然後,如果用戶在完成之前單擊鏈接,則可以在主Asynctask上調用cancel,它將檢查每個縮略圖asynctask之間的isCancelled(),並在它被取消時返回。
0
毫無疑問,AsyncTasks比線程處理程序架構更簡單和模塊化,但內部它們以相同的方式執行操作。
爲了解決您的問題,我建議先加載新聞。
您的新聞pojo/class可以像包含兩個名稱,
title和imageUrl。
現在顯示新聞列表並啓動另一個AsyncTask,它逐個獲取圖像並將它們存儲在Data Str /列表中。
每次從服務器獲取映像時,您的適配器都應該是「notifyDataSetChanged()」。
這樣你就可以讓用戶先看到新聞,並且圖片被加載而不會使UI被阻塞。
0
我機智使非同步任務加載數據,然後EXCUTE任務這就是填充列表時,異步任務是唐礦正在運行
相關問題
- 1. 避免凍結UI,同時加載
- 2. 優化mysql表以避免鎖定
- 3. 避免加載
- 4. 避免頻繁鎖定
- 5. C#避免文件鎖定Assembly.Load
- 6. 工作,避免鎖
- 7. 諮詢鎖或NOWAIT以避免等待鎖定的行?
- 8. 如何確保鎖定順序以避免死鎖?
- 9. 避免螺旋鎖死鎖
- 10. 如何避免SQLiteException鎖定錯誤
- 11. 如何避免裝載機鎖?
- 12. 同步方法,以避免死鎖
- 13. 避免sqlite3的數據庫鎖定
- 14. 如何避免在MongoDB中鎖定
- 15. 如何避免被GIT repo/SSH鎖定?
- 16. MySQL - 如何避免查詢鎖定
- 17. sqlite3:避免「數據庫鎖定」衝突
- 18. 如何避免mysql死鎖?
- 19. 獲取對兩個互斥鎖的鎖定並避免死鎖
- 20. 在mysql更新中跳過鎖定行以避免鎖定超時
- 21. 如何有效地鎖定代碼塊以避免樂觀鎖定異常
- 22. 避免或StgOpenStorage刪除鎖()
- 23. 搶先避免死鎖
- 24. 避免死鎖示例
- 25. 避免死鎖 - 過程
- 26. 避免死鎖MySQL/UniDAC/Delphi
- 27. android線程 - 鎖定UI?
- 28. 我應該如何鎖定以避免重複數字
- 29. 如何避免在Angular 2 + PrimeNG中的數據加載之前加載UI?
- 30. 如何避免隨機UI?
多少新聞,我們談論的同時? – JOG 2012-01-04 15:48:01
十四條新聞加載 – user1012480 2012-01-04 15:51:06