适用于Android的通用图像加载器,带有FragView中的ImageView

时间:2012-10-12 11:20:27

标签: java android universal-image-loader

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

但是如果我点击ListEntry在第二个片段中显示另一个图像就会失败。

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

日志输出在两种情况下都显示图像位于光盘缓存中,它是按比例缩放的。 - 没有错误。

此函数是Fragment的一部分:(并始终从Thread 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-Thread都会调用updateStockInfo。

任何提示? 提前thx!

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

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

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

1 个答案:

答案 0 :(得分:2)

您更有可能在活动的某个地方呼叫ImageLoader.stop()