Я пытаюсь создать приложение для Android, которое будет извлекать данные из Интернета с помощью Retrofit.Я сделал модифицированную систему кеширования тоже.Я работаю нормально в течение 24 часов, так как приложение перешло в автономный режим, но через 24 часа все сохраненные данные кэша теряют силу.Я даже изменил срок действия внутреннего кода с 60 * 60 * 20 (1 день) на 60 * 60 * 24 * 185 (185 дней) .Есть ли решение?
public class RetrofitInstance {
private static final String BASE_URL = "DOMAIN_HERE";
public static Retrofit getRetrofit(Context context)
{
File httpCacheDirectory = new File(context.getCacheDir(), "httpCache");
Cache cache = new Cache(httpCacheDirectory, 10 * 1024 * 1024);
OkHttpClient httpClient = new OkHttpClient.Builder()
.cache(cache)
.addInterceptor(chain -> {
try {
return chain.proceed(chain.request());
} catch (Exception e) {
Request offlineRequest = chain.request().newBuilder()
.header("Cache-Control", "public, only-if-cached," +
"max-stale=" + 60 * 60 * 24 * 185)
.build();
return chain.proceed(offlineRequest);
}
})
.build();
return new Retrofit.Builder()
.addConverterFactory(GsonConverterFactory.create(new Gson()))
.client(httpClient)
.baseUrl(BASE_URL)
.build();
}
}