我測試升級以使用Android通用圖像加載程序1.9.0。我已經在Android 4.2上測試過了。我遇到了一個問題,我正在下載和緩存意圖服務中的圖像,以便在後臺線程上運行以不干擾用戶。但是,UIL抱怨說我沒有在主線程中加載這些圖像。我不想在主線程中加載這些圖像,我只是希望能夠將它們緩存在後臺的光盤中,以便在用戶實際查看指定圖像時不需要下載它們。除了ImageLoader.loadImage之外,是否還有另一種預先在後臺線程上緩存圖像的方法?如果不是,我如何允許在不是主線程的線程上對磁盤進行預緩存?所有這些代碼都在IntentService中運行。如何使用通用圖像加載程序在意圖服務(後臺線程)中緩存圖像
ImageLoaderConfiguration:
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(
getApplicationContext())
.threadPriority(Thread.MAX_PRIORITY)
.memoryCacheSize(memoryCacheSize)
.denyCacheImageMultipleSizesInMemory()
.threadPoolSize(5)
.discCacheFileNameGenerator(new MyFileNameGenerator())
.tasksProcessingOrder(QueueProcessingType.LIFO)
.build();
DisplayImageOptions:
DisplayImageOptions options = new DisplayImageOptions.Builder().cacheOnDisc()
.imageScaleType(ImageScaleType.NONE).build();
加載圖片代碼:
imageLoader.loadImage(imageURI, options,
new SimpleImageLoadingListener() {
@Override
public void onLoadingComplete(String imageUri, View view,
Bitmap loadedImage)
{
loadNext(); // gives a notification update and loads next image URI in queue
}
@Override
public void onLoadingFailed(String imageUri, View view,
FailReason failReason)
{
loadNext(); // gives a notification update and loads next image URI in queue
}
});
看起來像這樣繞過了主線程上的處理程序檢查。謝謝。 –
我試圖實現完全相同的事@ user1236327,但我沒有看到loadImageSync緩存,你如何管理你的情況? – yahya
您是否在您通過'loadImageSync(...)'傳遞的選項中啓用緩存? – NOSTRA