ошибки ony-if-cached: реализация кеширования с модернизацией - PullRequest
2 голосов
/ 03 июня 2019

Я относительно новичок в разработке кодов / 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 об ошибке из базы данных. Я полагаю, что мне не хватает некоторых ключевых шагов, но я не уверен, что они есть. Любая помощь будет отличной. Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...