Я относительно новичок в разработке кодов / Android, и я впервые пытаюсь реализовать кэширование в своем приложении. В настоящее время приложение выполняет вызовы базы данных каждый раз, когда оно открывается, чтобы получить некоторую основную информацию, которая может быть легко кэширована и сохранена между сеансами.
Я подумал, что самым простым решением было бы реализовать кэширование с модификацией, как показано здесь: https://medium.com/mindorks/caching-with-retrofit-store-responses-offline-71439ed32fda Я хотел иметь возможность изменить это, чтобы проверить, есть ли в кеше данные с истекшим сроком хранения, и создать только базу данных. позвонить, если срок действия данных истек. В отличие от использования кеша, если телефон был отключен.
Пока это то, что у меня есть
OkHttpClient = OkHttpClient.Builder().connectTimeout(timeout.toLong(), TimeUnit.SECONDS).run {
context?.let { context ->
cache(Cache(context.cacheDir, (5 * 1024 * 1024).toLong()))
addInterceptor {
it.proceed(it.request().newBuilder().header("Cache-Control", "private, only-if-cached, max-stale=" + 60*60*24*28).build())
}
Я надеялся, что это проверит, есть ли данные в кеше, и затем выполнит вызов, если их нет, но вместо этого я получаю ответ 504 об ошибке из базы данных. Я полагаю, что мне не хватает некоторых ключевых шагов, но я не уверен, что они есть. Любая помощь будет отличной. Спасибо