NetworkBoundResource: почему `loadFromDb ()` в `ApiEmptyResponse` - PullRequest
0 голосов
/ 04 ноября 2019

Я видел в NetworkBoundResource.kt исходный код из примеров архитектуры-компонентов, строка 90-97:

                is ApiEmptyResponse -> {
                    appExecutors.mainThread().execute {
                        // reload from disk whatever we had
                        result.addSource(loadFromDb()) { newData ->
                            setValue(Resource.success(newData))
                        }
                    }
                }

У любого есть подсказка, почему в ApiEmptyResponseСценарий перезагружает базу данных и пытается отправить новый источник базы данных вместо использования «последнего» * ​​1007 *, переданного в параметрах функции private fun fetchFromNetwork(dbSource: LiveData<ResultType>) {...}, как в сценарии ApiErrorResponse.

1 Ответ

0 голосов
/ 04 ноября 2019

Он описывает это в комментарии вверху

перезагрузите с диска все, что у нас было

Это использовалось, чтобы гарантировать, что вы перезагрузите последние данные, которые выиметь и обязательно уведомить живые данные. если пойти и перепроверить код, вы найдете комментарий:

// мы специально запрашиваем новые живые данные,
// в противном случае мы сразу получим последнее кэшированное значение,
// который не может быть обновлен последними результатами, полученными из сети.

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