Я использую nostra's Universal Image Loader, я использую его для загрузки изображений в gridview размером 100 * 100, но исключение возбуждается КОГДА прокручивается очень быстро через сетку (только для демонстрации, у меня есть 13000 изображений на адаптере сетки), хотя библиотека обрабатывает исключение и пользователь не уведомляется об этом, ниже является исключениемСбой при загрузке Universal Image Loader
06-21 11:13:17.748: E/ImageLoader(2070): No such file or directory
06-21 11:13:17.748: E/ImageLoader(2070): java.io.FileNotFoundException: No such file or directory
06-21 11:13:17.748: E/ImageLoader(2070): at android.database.DatabaseUtils.readExceptionWithFileNotFoundExceptionFromParcel(DatabaseUtils.java:145)
06-21 11:13:17.748: E/ImageLoader(2070): at android.content.ContentProviderProxy.openTypedAssetFile(ContentProviderNative.java:612)
06-21 11:13:17.748: E/ImageLoader(2070): at android.content.ContentResolver.openTypedAssetFileDescriptor(ContentResolver.java:607)
06-21 11:13:17.748: E/ImageLoader(2070): at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:536)
06-21 11:13:17.748: E/ImageLoader(2070): at android.content.ContentResolver.openInputStream(ContentResolver.java:371)
06-21 11:13:17.748: E/ImageLoader(2070): at com.nostra13.universalimageloader.core.download.BaseImageDownloader.getStreamFromContent(BaseImageDownloader.java:177)
06-21 11:13:17.748: E/ImageLoader(2070): at com.nostra13.universalimageloader.core.download.BaseImageDownloader.getStream(BaseImageDownloader.java:88)
06-21 11:13:17.748: E/ImageLoader(2070): at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.downloadImage(LoadAndDisplayImageTask.java:290)
06-21 11:13:17.748: E/ImageLoader(2070): at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.tryCacheImageOnDisk(LoadAndDisplayImageTask.java:273)
06-21 11:13:17.748: E/ImageLoader(2070): at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.tryLoadBitmap(LoadAndDisplayImageTask.java:229)
06-21 11:13:17.748: E/ImageLoader(2070): at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.run(LoadAndDisplayImageTask.java:135)
06-21 11:13:17.748: E/ImageLoader(2070): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
06-21 11:13:17.748: E/ImageLoader(2070): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
06-21 11:13:17.748: E/ImageLoader(2070): at java.lang.Thread.run(Thread.java:856)
Код на месте являются:
WRITE_EXTERNAL_STORAGE добавляют
Оба памяти и дискового кэша
UnlimitedDiskCache для дискового кэша
Используя новейшие библиотеки 1.9.2
Это, как говорится, библиотека аварий и больше не в состоянии не для загрузки изображения и повторяет все предыдущие изображения, как сбросить библиотеку в таких случаях и начать новую, в случае таких сбоев?
Ниже конфигурация ImageLoader
String cacheDirectory=context.getCacheDir()+ImageLoaderConstants.IMAGE_CACHE_DIRECTOY_PATH;
File cacheDir=new File(cacheDirectory);
DisplayImageOptions options = new DisplayImageOptions.Builder()
.delayBeforeLoading(0)
.cacheInMemory(true)
.cacheOnDisk(true)
.imageScaleType(ImageScaleType.EXACTLY)
.bitmapConfig(Bitmap.Config.RGB_565)
.displayer(new SimpleBitmapDisplayer())
.build();
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context).threadPoolSize(5)
.threadPriority(Thread.NORM_PRIORITY)
.denyCacheImageMultipleSizesInMemory()
.memoryCacheExtraOptions(1280, 720)
.diskCacheExtraOptions(1280, 720,null)
.memoryCache(new LruMemoryCache(5*1024*1024))
.diskCache(new UnlimitedDiscCache(cacheDir))
.defaultDisplayImageOptions(options)
.build();
UPDATE:
адаптер код не имеет ничего особенного,
imageLoader.displayImage(uriPath, holder.imgThumbnail);
У меня есть все конфигурации, как это определено в разделе Использование на UIL GitHub
Я рекомендовал использовать фреймворк androidquery для использования, поскольку он обрабатывает даже «из памяти» ошибку. http://code.google.com/p/android-query/ –
Включена ли опция кэширования памяти в вашей конфигурации? – Nima
@Nima да, это –