Вы можете использовать метод HTTP HEAD, чтобы проверить дату изменения на сервере и посмотреть, действительно ли вам нужно получить новые данные.Каждый раз, когда приложение запускается и через определенные промежутки времени оно выполняет запрос к серверу, чтобы узнать, изменились ли данные.Это предполагает, что данные кэшируются на сервере и не генерируются динамически при каждом запросе или зависят от того, какой клиент делает запрос.
Таким образом, вам необходимо сохранить данные и дату для каждого элемента.SharedPreferences должно быть достаточно, если данные представляют собой строку средней длины, а общее количество составляет менее нескольких килобайт.Если существует известная верхняя граница длины данных, используйте базу данных, в противном случае вы можете использовать простые файлы.SharedPreferences записывает XML-файл каждый раз, когда вы фиксируете.
Вы можете создать поток с большим интервалом ожидания, чтобы выполнять периодические проверки, или создать обработчик и использовать postDelayed или аналогичный для создания проверочного потока.Проверяйте пункты так часто, как ваш максимум для устаревших данных.Если вы проверяете каждые 10 минут, вы допускаете до 10 минут старых данных, в среднем вдвое меньше.Проверка при запуске заставит вещи появляться в большинстве случаев в любом случае в актуальном состоянии.
Если срок действия всех элементов истекает сразу, вам нужно только проверить дату одного элемента, чтобы знать, что все они должны быть обновлены.Если нет, вы можете попробовать использовать условный GET вместо проверки заголовка каждого элемента.