我正在使用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));
你知道吗 - 它有效。 这是一个错误还是只适用于我的特殊情况?
答案 0 :(得分:2)
您更有可能在活动的某个地方呼叫ImageLoader.stop()
。