私はしばらくの間Android Http Image Managerを使用してきましたが、最近Android Universal Image Loaderに切り替えました
どちらも、ローカル キャッシュが最新かどうかを確認する機能をサポートしていません。
私が現在探しているのは、コミュニティ サポートと、ETagおよび/またはIf-Modified-Sinceを介したリモート変更のチェックをサポートする Image Loader ライブラリです。
私はしばらくの間Android Http Image Managerを使用してきましたが、最近Android Universal Image Loaderに切り替えました
どちらも、ローカル キャッシュが最新かどうかを確認する機能をサポートしていません。
私が現在探しているのは、コミュニティ サポートと、ETagおよび/またはIf-Modified-Sinceを介したリモート変更のチェックをサポートする Image Loader ライブラリです。
質問は 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()));
}
}