我正在使用 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));
你知道吗 - 它有效。这是一个错误还是仅适用于我的特殊情况?