Пустая функция слушателя и что используется, так как это пустая заглушка - PullRequest
0 голосов
/ 04 января 2012
/**
 * Defines an interface for a callback that will handle
 * responses from the thread loader when an image is done
 * being loaded.
 */
public interface ImageLoadedListener {
    public void imageLoaded(Bitmap imageBitmap );
}

тогда где-то в коде

 // If in the cache, return that copy and be done
                if( Cache.containsKey(item.url.toString()) && Cache.get(item.url.toString()) != null) {
                    // Use a handler to get back onto the UI thread for the update
                    handler.post(new Runnable() {
                        public void run() {
                            if( item.listener != null ) {
                                // NB: There's a potential race condition here where the cache item could get
                                //     garbage collected between when we post the runnable and it's executed.
                                //     Ideally we would re-run the network load or something.
                                SoftReference<Bitmap> ref = Cache.get(item.url.toString());
                                if( ref != null ) {
                                    item.listener.imageLoaded(ref.get());
                                }
                            }
                        }
                    });
                } else {
                    final Bitmap bmp = readBitmapFromNetwork(item.url);
                    if( bmp != null ) {
                        Cache.put(item.url.toString(), new SoftReference<Bitmap>(bmp));

                        // Use a handler to get back onto the UI thread for the update
                        handler.post(new Runnable() {
                            public void run() {
                                if( item.listener != null ) {
                                    item.listener.imageLoaded(bmp);
                                }
                            }
                        });
                    }

                }

Мой вопрос: imageLoaded (Bitmap imageBitmap) - пустая функция, она ничего не делает, кроме обеспечения обратного вызова. Итак, item.listener.imageLoaded (ref.get ()); что это значит? или к чему это приведет? потому что imageLoaded является пустой функцией-заглушкой. То же самое с item.listener.imageLoaded (bmp); Кажется, это ни к чему не приведет.

1 Ответ

2 голосов
/ 04 января 2012

ImageLoadedListener - это интерфейс.Реализация этого интерфейса может предоставить собственную реализацию imageLoaded(), чтобы делать все, что нужно, когда изображение загружено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...