Android 台灣中文網

標題: runOnUiThread裡面沒辦法使用Handler [打印本頁]

作者: lkk47    時間: 2012-11-26 11:32
標題: runOnUiThread裡面沒辦法使用Handler
我使用runOnUiThread去執行listview.setadapter(), adapter使用handler去下載圖片  這樣作會報錯誤
錯誤訊息java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()

有辦法讓 runOnUiThread 可以執行Handler嗎?
作者: ploglin    時間: 2012-11-26 11:38
下載圖片應該要用 asynctask 去做會比較好唷!
不然在 load 圖的時候會卡卡的
作者: pjt    時間: 2012-11-26 14:42
在沒有特別指定的情況下,Handler的running thread是建造出Handler的thread.在正確的thread中new出來的Handler是可以在runOnUiThread()裡執行的(雖然這個動作在80%的情況下是多此一舉).
以您的說明來看,在handler裡去做下載圖片的事(尤其是還想把這handler跟UI thread連在一起)是不對的,很容易ANR.請改用AsyncTask或是別的thread來做.
作者: lkk47    時間: 2012-11-26 15:19
pjt 發表於 2012-11-26 14:42
在沒有特別指定的情況下,Handler的running thread是建造出Handler的thread.在正確的thread中new出來的Handl ...

handler除了下載圖片外主要功能是cache image  看來需要改別的方式來cache image了
我在官方有找到  http://developer.android.com/training/displaying-bitmaps/cache-bitmap.html

看似在講cache機制  還是你們有更好的cache機制可以分享呢?
我得先看完那篇文章
作者: ploglin    時間: 2012-11-26 16:22
https://github.com/nostra13/Android-Universal-Image-Loader
我使用過這一套
作者: lkk47    時間: 2012-11-26 17:18
ploglin 發表於 2012-11-26 16:22
https://github.com/nostra13/Android-Universal-Image-Loader
我使用過這一套

哈哈  我剛也有找到  他也包好library了




歡迎光臨 Android 台灣中文網 (https://apk.tw/) Powered by Discuz! X3.1