Для найновішої версії 2.71828 Це ваша відповідь.
Q1 : Немає локального кеш-диска?
A1 : У Picasso є кешування за замовчуванням, і запит подається саме так
App -> Memory -> Disk -> Server
Де б вони не зустріли своє зображення спочатку, вони використовуватимуть це зображення, а потім зупинятимуть потік запиту. А як щодо потоку відповідей? Не хвилюйтесь, ось це.
Server -> Disk -> Memory -> App
За замовчуванням вони спочатку зберігатимуться на локальному диску для розширеного кешу зберігання. Потім пам'ять, наприклад, використання кешу.
Ви можете використовувати вбудований індикатор у Picasso, щоб побачити, де утворюються зображення, включивши це.
Picasso.get().setIndicatorEnabled(true);
Він з’явиться прапор у верхньому лівому куті ваших фотографій.
- Червоний прапор означає, що зображення надходять із сервера.(Немає кешування при першому завантаженні)
- Синій прапор означає, що фотографії приходять з локального диска.(Кешування)
- Зелений прапор означає, що зображення надходять із пам'яті. (Керування екземплярами)
Q2 : Як увімкнути кешування диска, оскільки я буду використовувати одне і те ж зображення кілька разів?
А2 : Вам не потрібно це вмикати. Це за замовчуванням.
Що вам потрібно зробити, це БЕЗКОШТОВНО коли ви хочете, щоб ваші зображення завжди були свіжими. Існує двосторонній відключений кешування.
- Набір
.memoryPolicy()
для no_cache і / або NO_STORE і потік буде виглядати наступним чином .
NO_CACHE не буде шукати зображення з пам'яті.
App -> Disk -> Server
NO_STORE пропустить збереження зображень у пам'яті при першому завантаженні зображень.
Server -> Disk -> App
- Набір
.networkPolicy()
для no_cache і / або NO_STORE і потік буде виглядати наступним чином .
NO_CACHE не буде шукати зображення з диска.
App -> Memory -> Server
NO_STORE буде пропускати збереження зображень на диску при першому завантаженні зображень.
Server -> Memory -> App
Ви не можете відключити жодне, щоб повністю не кешувати зображення. Ось приклад.
Picasso.get().load(imageUrl)
.memoryPolicy(MemoryPolicy.NO_CACHE,MemoryPolicy.NO_STORE)
.networkPolicy(NetworkPolicy.NO_CACHE, NetworkPolicy.NO_STORE)
.fit().into(banner);
Потік без кешування та зберігання не виглядатиме так.
App -> Server //Request
Server -> App //Response
Отже, вам може знадобитися це і для мінімізації використання вашого додатка для зберігання.
Q3 : Чи потрібно додати деякий дозвіл диска до файлу маніфесту Android?
A3 : Ні, але не забудьте додати ІНТЕРНЕТ дозвіл на ваш HTTP-запит.