Per la versione più aggiornata 2.71828 Queste sono le tue risposte.
Q1 : non ha la cache del disco locale?
A1 : C'è un caching predefinito all'interno di Picasso e il flusso di richieste proprio come questo
App -> Memory -> Disk -> Server
Ovunque abbiano incontrato prima la loro immagine, useranno quell'immagine e poi interromperanno il flusso di richieste. E il flusso di risposta? Non preoccuparti, eccolo qui.
Server -> Disk -> Memory -> App
Per impostazione predefinita, verranno archiviati prima in un disco locale per la cache di conservazione estesa. Quindi la memoria, per l'utilizzo dell'istanza della cache.
È possibile utilizzare l'indicatore integrato in Picasso per vedere dove si formano le immagini abilitandolo.
Picasso.get().setIndicatorEnabled(true);
Apparirà una bandiera nell'angolo in alto a sinistra delle tue immagini.
- La bandiera rossa indica che le immagini provengono dal server. (Nessuna memorizzazione nella cache al primo caricamento)
- Bandiera blu significa che le foto provengono dal disco locale. (Caching)
- La bandiera verde significa che le immagini provengono dalla memoria. (Memorizzazione nella cache delle istanze)
D2 : Come si abilita la memorizzazione nella cache del disco poiché userò la stessa immagine più volte?
A2 : non è necessario abilitarlo. È l'impostazione predefinita.
Quello che devi fare è DISATTIVARLO quando vuoi che le tue immagini siano sempre fresche. Sono disponibili due modalità di memorizzazione nella cache disabilitata.
- Impostare
.memoryPolicy()
su NO_CACHE e / o NO_STORE e il flusso sarà simile a questo.
NO_CACHE salterà la ricerca delle immagini dalla memoria.
App -> Disk -> Server
NO_STORE salterà le immagini di archiviazione in memoria al primo caricamento delle immagini.
Server -> Disk -> App
- Impostare
.networkPolicy()
su NO_CACHE e / o NO_STORE e il flusso sarà simile a questo.
NO_CACHE salterà la ricerca di immagini dal disco.
App -> Memory -> Server
NO_STORE salterà le immagini di memorizzazione nel disco quando le prime immagini caricate.
Server -> Memory -> App
Non è possibile DISABILITARE né completamente nessuna immagine memorizzata nella cache. Ecco un esempio.
Picasso.get().load(imageUrl)
.memoryPolicy(MemoryPolicy.NO_CACHE,MemoryPolicy.NO_STORE)
.networkPolicy(NetworkPolicy.NO_CACHE, NetworkPolicy.NO_STORE)
.fit().into(banner);
Il flusso di nessuna memorizzazione nella cache e nessuna memorizzazione sarà simile a questo.
App -> Server //Request
Server -> App //Response
Quindi, potrebbe essere necessario anche per ridurre al minimo l'utilizzo dello spazio di archiviazione dell'app.
D3 : Devo aggiungere alcune autorizzazioni del disco al file manifest di Android?
A3 : No, ma non dimenticare di aggiungere l'autorizzazione INTERNET per la tua richiesta HTTP.