4

私はしばらくの間Android Http Image Managerを使用してきましたが、最近Android Universal Image Loaderに切り替えました

どちらも、ローカル キャッシュが最新かどうかを確認する機能をサポートしていません。

私が現在探しているのは、コミュニティ サポートと、ETagおよび/またはIf-Modified-Sinceを介したリモート変更のチェックをサポートする Image Loader ライブラリです。

4

1 に答える 1

2

質問は Github AUIL issue tracker から回答されています。NOSTRAさん、ありがとうございます。

https://github.com/nostra13/Android-Universal-Image-Loader/issues/75

public class URLConnectionImageDownloader extends ImageDownloader {
    @Override
    public InputStream getStreamFromNetwork(URI imageUri) throws IOException {
        URLConnection conn = imageUri.toURL().openConnection();
        // check etag/last-modification-date/... params
        // if image was changed then we should delete cached image from memory cache and disc cache

        // Delete image from caches
        String uri = imageUri.toString();
        File imageFile = ImageLoader.getDiscCache().get(uri)
        if (imageFile.exists()) {
            imageFile.delete();
        }
        MemoryCacheAware<String, Bitmap memoryCache = ImageLoader.getMemoryCache();
        for (String cacheKey : memoryCache.keys()) {
            if (cacheKey.contains(uri) {
                memoryCache.remove(cacheKey);
            }
        }


        return new FlushedInputStream(new BufferedInputStream(conn.getInputStream()));
    }
}
于 2013-10-08T07:52:30.900 に答える