Ответ
Polling — это техника, при которой клиент периодически отправляет запросы к серверу для проверки обновлений. Это просто реализовать, но неэффективно из-за лишних запросов, особенно если обновления редкие.
Пример (Kotlin, Retrofit):
val handler = Handler(Looper.getMainLooper())
val runnable = object : Runnable {
override fun run() {
viewModel.fetchData() // Запрос к API
handler.postDelayed(this, 5000) // Повтор каждые 5 сек
}
}
handler.post(runnable)
// Не забыть удалить callback: handler.removeCallbacks(runnable)
Минусы:
- Трафик и нагрузка на сервер
- Задержки в получении данных (зависит от интервала)
Альтернативы: WebSockets, Firebase Realtime DB, WorkManager с backoff-логикой.