Подтвердить что ты не робот

Как использовать Android CacheManager?

В настоящее время я разрабатываю приложение для Android, которое извлекает изображения с помощью HTTP-запросов. Было бы достаточно разбухать, если бы я мог кэшировать эти изображения, чтобы улучшить производительность и использование полосы пропускания.

Я столкнулся с классом CacheManager в ссылке на Android, но я действительно не знаю, как его использовать или что он на самом деле делает.

Я уже рассмотрел этот пример, но мне нужна помощь в этом:

/core/java/android/webkit/gears/ApacheHttpRequestAndroid.java

Кроме того, эталонное состояние:

"Сетевые запросы предоставляются этому компоненту, и если они не могут быть разрешены кэшем, HTTP-заголовки при необходимости присоединяются к запросу на повторную проверку содержимого."

Я не уверен, что это значит или как это будет работать для меня, поскольку CacheManager getCacheFile принимает только строковый URL-адрес и карту, содержащую заголовки. Не уверен, что означает упомянутое приложение.

Объяснение или простой пример кода действительно сделают мой день. Спасибо!

Update

Вот что я имею прямо сейчас. Я явно делаю это неправильно, просто не знаю, где.

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;
    }
4b9b3361

Ответ 2

Я столкнулся с этим вопросом еще некоторое время назад. Менеджер кэша предназначен только для веб-просмотра и не очень полезен вне этого. Для моего приложения мне нужно было кэшировать xml-ответы и изображения, поэтому я закончил писать свой собственный менеджер кешей, чтобы это сделать. Ничего страшного, но, конечно же, не так просто, как использовать встроенный встроенный.

Если у вас есть какие-либо вопросы о специфике, добавьте комментарий к моему сообщению, я часто проверяю его.