проблема загрузки изображений асинхронно - PullRequest
0 голосов
/ 13 июля 2011

У меня есть приложение, которое использует изображения из веб-источника. для своего приложения я сначала загружаю изображения в отдельном потоке, и только если изображение существует на диске, которое я показываю в списке. 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();

обработчик создается в начале класса. Но когда я делаю это, ничего не происходит, пока я не освежу свои взгляды. Я попытался (Activity) .runOnUIThread внутри одного из моих потоков, я получил ошибку stackoverflow. Как мне решить это или есть какие-то другие советы. Вы можете дать мне? Спасибо

Ответы [ 2 ]

1 голос
/ 13 июля 2011

Использовать AsyncTask. В методе onPostExecute () просто вызовите метод из действия и обновите пользовательский интерфейс. OnPostExecute () вызывается по завершении потока.

http://developer.android.com/resources/articles/painless-threading.html

P.S. Для вызова метода действия просто используйте Interface.

0 голосов
/ 13 июля 2011
...