Я использую пользовательский перехватчик для отправки данных в API:
class PicassoInterceptor(
private val id: String
) : Interceptor {
@Throws(IOException::class)
override fun intercept(chain: Interceptor.Chain): Response {
val requestBody = FormBody.Builder()
.add("id", id)
.build()
val original = chain.request()
val requestBuilder = original.newBuilder()
.header("Cache-Control", "max-age=" + (60 * 60 * 24 * 365))
.post(requestBody)
return chain.proceed(requestBuilder.build())
}
}
Я начинаю с действия A и затем перехожу к действию B, где я загружаю изображения.В действии B в onCreate я являюсь инициатором Picasso Builder.
val okHttpClient = OkHttpClient.Builder()
.cache(Cache(cacheDir, Integer.MAX_VALUE.toLong()))
.addInterceptor(
PicassoInterceptor(access_token)
)
.build()
val downloader = OkHttp3Downloader(okHttpClient)
val picasso = Picasso.Builder(this).downloader(downloader).build()
picasso.setIndicatorsEnabled(true)
picasso.isLoggingEnabled = true
Picasso.setSingletonInstance(picasso)
Когда я запускаю приложение и перехожу из действия A в B, тогда изображения загружаются из сети.Когда я вернулся к A, а затем снова вернулся к B, изображения загружаются из кеша.Это круто!Но если я закрою приложение и удалю его из оперативной памяти, изображения снова загрузятся из сети.Можно ли сохранить изображения в данные приложения?