Я в настоящее время разрабатываю приложение Android, которое выбирает изображения с помощью запросов HTTP. Это была бы вполне выпуклость, если я мог бы кэшировать те изображения для улучшения к использованию пропускной способности и производительности.
Я столкнулся с классом CacheManager в ссылке Android, но я действительно не знаю, как использовать его, или что это действительно делает.
Я уже определил объем через этот пример, но я нуждаюсь в некоторой помощи, понимая это:
/core/java/android/webkit/gears/ApacheHttpRequestAndroid.java
Кроме того, ссылочные состояния:
"Сетевые запросы предоставляются этому компоненту и если они не могут быть разрешены кэшем, HTTP-заголовки присоединяются, как соответствующие, к запросу на придание вновь юридической силы содержания".
Я не уверен, что это означает или как это работало бы на меня, так как getCacheFile CacheManager принимает только Строковый URL и Карту, содержащую заголовки. Не уверенный, что вложение упомянуло средства.
Объяснение или простой пример кода действительно сделали бы мой день. Спасибо!
Обновление
Вот то, что я имею прямо сейчас. Я ясно делаю его неправильно, просто не знайте где.
public static Bitmap getRemoteImage(String imageUrl) { URL aURL = null; URLConnection conn = null; Bitmap bmp = null; CacheResult cache_result = CacheManager.getCacheFile(imageUrl, new HashMap()); if (cache_result == null) { try { aURL = new URL(imageUrl); conn = aURL.openConnection(); conn.connect(); InputStream is = conn.getInputStream(); cache_result = new CacheManager.CacheResult(); copyStream(is, cache_result.getOutputStream()); CacheManager.saveCacheFile(imageUrl, cache_result); } catch (Exception e) { return null; } } bmp = BitmapFactory.decodeStream(cache_result.getInputStream()); return bmp; }
Я не думаю, что CacheManger можно использовать вне WebView, как указано в этом отчете об ошибке http://code.google.com/p/android/issues/detail?id = 7222