我有一個應用程序使用來自web的圖像來源。對於我的應用程序,我首先在單獨的線程中下載圖像,並且僅當我在列表中顯示的磁盤上存在圖像時。 Downloader是一個單獨的線程,但我很新使用線程,現在別的東西讓我困惑。除非我刷新視圖,否則我的圖像不會顯示,這是我的列表。現在,我需要證明我的圖片,所以我寫這在我的自定義視圖:問題異步加載圖像
private Runnable LoaderTask=new Runnable(){
public void run() {
if(cellIcon!=null){
if(iconCache.get(cellIcon)!=null){
icon.setImageBitmap(iconCache.get(cellIcon));
mHandler.postDelayed(this, 200);
}
}
}
};
private class ImageThread extends Thread{
@Override
public void run() {
// mHandler.removeCallbacks(LoaderTask);
mHandler.postDelayed(LoaderTask, 100);
}
}
我觸發我的線程這樣
ImageThread thread=new ImageThread();
thread.start();
處理程序在類的開始被實例化。但是當我這樣做的時候,沒有什麼事情發生,直到我刷新我的觀點。我嘗試(活動).runOnUIThread裏面我的一個線程我得到了stackoverflow錯誤。我該如何解決這個問題,或者是否有其他建議。你可以給我嗎?謝謝
嗨佩皮,謝謝您的回答。它幫助了我很多,但仍然沒有異步加載圖像。我嘗試這樣'code'私有類LoadImageTask延伸的AsyncTask,無效位圖> { \t \t @Override \t \t保護無效onPostExecute(位圖結果){ \t \t \t icon.setImageBitmap(結果); \t \t} \t \t @覆蓋 \t \t保護的位圖doInBackground(HashMap的<字符串,位圖> ... PARAMS){ \t \t \t \t回model.getIconCache()得到(cellIcon)。 \t \t \t \t \t} \t \t \t}'code'但我m如果同樣的事情。圖標緩存正在加載的時間我需要一個任務來定期檢查緩存,如果看到一個項目 –
ikbal
定期檢查,使用AlarmManager定期運行您的任務 –
嗯,其實我也不知道如何使用AlarmManager,但我會檢查它,謝謝 – ikbal