URLConnection и setUseCaches(true)
Я использую текущий код для загрузки изображений в теме:
Log.d(TAG, "Fetching image: " + BASE_URL + mURL);
URLConnection connection;
InputStream input;
connection = (new URL(BASE_URL + mURL)).openConnection();
connection.setUseCaches(true);
connection.connect();
input = connection.getInputStream();
Bitmap image = BitmapFactory.decodeStream(input);
Документация Android не очень понятна, если метод setUseCaches() будет кэшировать данные. Из тестирования это выглядит не так, как хотелось бы, но я хотел узнать, не делаю ли я что-то не так, если кто-нибудь знает, что setUseCaches() что-то делает.
2 ответа
Насколько я могу судить, использование setUseCaches(true) не имеет никакого эффекта и ничего не кеширует. Рекомендуемый способ кэширования файлов на Android - это запись файлов в частное внутреннее хранилище и использование метода getCacheDir():
http://developer.android.com/guide/topics/data/data-storage.html
Я понятия не имею, что делает setUseCaches(boolean)... но если вы хотите кэшировать данные Http (s), попробуйте использовать HttpResponseCache. Его очень легко настроить, и я верю, что он сделает то, что вы намеревались сделать с помощью setUseCaches (логическое значение).
http://developer.android.com/reference/android/net/http/HttpResponseCache.html