1

我正在使用 UIL 在 ListFragment 中加载和显示图像,效果很好。在 ListView 中,我使用的是 Handler-Pattern。到目前为止没有问题。

但是,如果我单击 ListEntry 在第二个片段中显示另一个图像,它将失败。

奇怪的是,如果我单击第二个片段中的按钮加载该图像,它就像一个魅力。

日志输出在这两种情况下都显示图像在磁盘缓存中,并且它也被缩放。- 没有错误。

此函数是片段的一部分:(并且总是从线程 1 (UI) 调用)

    public void updateStockInfo(final String symbol) {

    if (viewer != null) {
        //final ImageView imageview = (ImageView) viewer.findViewById(R.id.stockinfo);

        urlForStockInfo = "http://chart.finance.yahoo.com/c/3m/d/" + symbol.toLowerCase();

        imageloader.loadImage(getActivity(), urlForStockInfo, new ImageLoadingListener() {
            ...

            @Override
            public void onLoadingComplete(final Bitmap loadedImage) {
                imageview.setImageBitmap(loadedImage);
                logger.debug("Loadinf complete");
            }
        });
    }

从 onActivityCreated 调用 updateStockInfo(与 onCreateView 相同)失败,没有任何异常。加载图像的线程没有启动。在 LoadAndDisplayImageTas:run() 中,第 89 行检查了 Thread.interrupted() - 此检查失败。

Buuuuuttt 如果手动(按下按钮)调用 updateStockInfo 如果有效???

在所有情况下,UI 线程都会调用 updateStockInfo。

有什么提示吗?提前谢谢!

[更新]
我下载了源代码并在第 92 行删除了对 Thread.interupted() 的检查

        if (/* Thread.interrupted() || */checkTaskIsNotActual()) return;
    if (configuration.loggingEnabled) Log.i(ImageLoader.TAG, String.format(LOG_DISPLAY_IMAGE_IN_IMAGEVIEW, imageLoadingInfo.memoryCacheKey));

你知道吗 - 它有效。这是一个错误还是仅适用于我的特殊情况?

4

1 回答 1

2

ImageLoader.stop()你更有可能在活动的某个地方打电话。

于 2012-10-14T16:32:40.270 回答