Untuk versi terbaru 2.71828 Ini adalah jawaban Anda.
T1 : Apakah itu tidak memiliki cache disk lokal?
A1 : Ada cache default dalam Picasso dan aliran permintaan seperti ini
App -> Memory -> Disk -> Server
Di mana pun mereka bertemu gambar pertama kali, mereka akan menggunakan gambar itu dan kemudian menghentikan aliran permintaan. Bagaimana dengan aliran respons? Jangan khawatir, ini dia.
Server -> Disk -> Memory -> App
Secara default, mereka akan menyimpan ke disk lokal terlebih dahulu untuk cache penyimpanan yang diperpanjang. Kemudian memori, untuk contoh penggunaan cache.
Anda dapat menggunakan indikator built-in di Picasso untuk melihat di mana gambar terbentuk dengan mengaktifkannya.
Picasso.get().setIndicatorEnabled(true);
Ini akan menunjukkan bendera di sudut kiri atas gambar Anda.
- Bendera merah berarti gambar tersebut berasal dari server. (Tidak ada caching pada pemuatan pertama)
- Bendera biru berarti foto-foto tersebut berasal dari disk lokal. (Caching)
- Bendera hijau berarti gambar tersebut berasal dari memori. (Cache Instance)
T2 : Bagaimana cara mengaktifkan cache disk karena saya akan menggunakan gambar yang sama beberapa kali?
A2 : Anda tidak harus mengaktifkannya. Ini defaultnya.
Yang perlu Anda lakukan adalah NONAKTIFKAN jika Anda ingin gambar Anda selalu segar. Ada 2 cara untuk menonaktifkan caching.
- Setel
.memoryPolicy()
ke NO_CACHE dan / atau NO_STORE dan alurnya akan terlihat seperti ini.
NO_CACHE akan melewatkan mencari gambar dari memori.
App -> Disk -> Server
NO_STORE akan melewatkan menyimpan gambar dalam memori saat memuat gambar pertama.
Server -> Disk -> App
- Setel
.networkPolicy()
ke NO_CACHE dan / atau NO_STORE dan alurnya akan terlihat seperti ini.
NO_CACHE akan melewatkan mencari gambar dari disk.
App -> Memory -> Server
NO_STORE akan melewatkan gambar penyimpanan di disk saat memuat gambar pertama.
Server -> Memory -> App
Anda tidak dapat MENONAKTIFKAN keduanya karena tidak ada gambar yang disimpan dalam cache. Berikut ini contohnya.
Picasso.get().load(imageUrl)
.memoryPolicy(MemoryPolicy.NO_CACHE,MemoryPolicy.NO_STORE)
.networkPolicy(NetworkPolicy.NO_CACHE, NetworkPolicy.NO_STORE)
.fit().into(banner);
Aliran tanpa cache dan penyimpanan sepenuhnya akan terlihat seperti ini.
App -> Server //Request
Server -> App //Response
Jadi, Anda mungkin memerlukan ini untuk meminimalkan penggunaan penyimpanan aplikasi Anda juga.
T3 : Apakah saya perlu menambahkan beberapa izin disk ke file manifes android?
A3 : Tidak, tapi jangan lupa untuk menambahkan izin INTERNET untuk permintaan HTTP Anda.