I don't have enough karma to comment on Joe's answer above :(
Since Google's code search is discontinued, here islibs-for-android has a direct link to the issue:
http://code.google.com/p/libs-for-android/source/browse/src/com/google/android/filecache/FileResponseCache.java#38nice libraries for managing image and file cache.
Original post:http://code.google.com/p/libs-for-android/
Regarding the elegant connection.setUseCaches solution above: sadly, it won't work without some additional effort. You will need to install a ResponseCache using ResponseCache.setDefault. Otherwise, HttpURLConnection will silently ignore the setUseCaches(true) bit.
See the comments at the top of FileResponseCache.java for details: