Android 4.2.2 の Universal Image Loader 1.9.1 に問題があります。同じことがここで説明されています: Android Universal image loader, stop retry。NOSTRAの回答を何度も読んだことがありますが、それを実装する方法がわかりません。BaseImageDownloader を拡張して getStream メソッドをオーバーライドする必要がありますか? 答えの最後の部分を使用したいと思います:
UIL は、イメージの読み込み自体を再試行しません。null を返すと、 onLoadingFailed(...) コールバックが返されます。同じ URL に対して displayImage(...) を再度呼び出すと、UIL は画像を再度読み込もうとします。それを防ぎたい場合は、「悪い」URL をどこかに保持し、これらの URL に対して ImageLoader を呼び出さないか、これらの URL に対して ImageDownloader でnull を返す必要があります。
基本的に、UIL が無効な画像ファイルを指す有効な URL に何度も接続しようとするのを避ける最も簡単な方法は何ですか? それが役立つかどうかはわかりません。ここに私の設定があります:
DisplayImageOptions options = new DisplayImageOptions.Builder()
.resetViewBeforeLoading(true).cacheInMemory(true)
.cacheOnDisc(true)
.imageScaleType(ImageScaleType.EXACTLY_STRETCHED)
.showImageForEmptyUri(R.drawable.photo_placeholder)
.showImageOnFail(R.drawable.photo_placeholder).build();
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(
context).memoryCacheExtraOptions(200, 200)
.discCacheExtraOptions(200, 200, CompressFormat.JPEG, 75, null)
.threadPoolSize(5).denyCacheImageMultipleSizesInMemory()
.memoryCache(new LruMemoryCache(2 * 1024 * 1024))
.imageDownloader(new BaseImageDownloader(context) {
})
.defaultDisplayImageOptions(options).build();
ここで本当に助けが必要です。私のアプリはUILを頻繁に使用しています。