Para a versão mais atualizada 2.71828 Esta é a sua resposta.
T1 : ele não tem cache de disco local?
A1 : Há cache padrão no Picasso e o fluxo de solicitação exatamente como este
App -> Memory -> Disk -> Server
Sempre que encontrarem sua imagem primeiro, eles a usarão e, em seguida, interromperão o fluxo de solicitação. E quanto ao fluxo de resposta? Não se preocupe, aqui está.
Server -> Disk -> Memory -> App
Por padrão, eles serão armazenados em um disco local primeiro para o cache de armazenamento estendido. Em seguida, a memória, para o uso de instância do cache.
Você pode usar o indicador embutido no Picasso para ver onde as imagens se formam, ativando isso.
Picasso.get().setIndicatorEnabled(true);
Ele vai mostrar uma bandeira no canto superior esquerdo de suas fotos.
- Bandeira vermelha significa que as imagens vêm do servidor. (Sem cache no primeiro carregamento)
- A bandeira azul significa que as fotos vêm do disco local. (Cache)
- A bandeira verde significa que as imagens vêm da memória. (Cache de instância)
P2 : Como habilito o cache de disco, pois usarei a mesma imagem várias vezes?
A2 : Você não precisa habilitá-lo. É o padrão.
O que você precisa fazer é DESATIVÁ - LO quando quiser que suas imagens estejam sempre frescas. Há duas formas de cache desabilitado.
- Defina
.memoryPolicy()
como NO_CACHE e / ou NO_STORE e o fluxo ficará assim.
NO_CACHE irá pular a procura de imagens da memória.
App -> Disk -> Server
NO_STORE irá pular imagens de armazenamento na memória quando as imagens forem carregadas pela primeira vez.
Server -> Disk -> App
- Defina
.networkPolicy()
como NO_CACHE e / ou NO_STORE e o fluxo ficará assim.
NO_CACHE irá pular a procura de imagens do disco.
App -> Memory -> Server
NO_STORE irá pular imagens de armazenamento no disco quando as imagens forem carregadas pela primeira vez.
Server -> Memory -> App
Você não pode DESATIVAR para não armazenar imagens em cache. Aqui está um exemplo.
Picasso.get().load(imageUrl)
.memoryPolicy(MemoryPolicy.NO_CACHE,MemoryPolicy.NO_STORE)
.networkPolicy(NetworkPolicy.NO_CACHE, NetworkPolicy.NO_STORE)
.fit().into(banner);
O fluxo sem cache e sem armazenamento será assim.
App -> Server //Request
Server -> App //Response
Portanto, você pode precisar disso para minimizar o uso de armazenamento do aplicativo também.
P3 : Preciso adicionar alguma permissão de disco ao arquivo de manifesto do Android?
A3 : Não, mas não se esqueça de adicionar a permissão INTERNET para sua solicitação HTTP.