Вступить в клуб →
сложнаявопросСлой данных, DI и релиз

Офлайн-данные не уходят на сервер после закрытия приложения

Приложение для курьеров умеет работать офлайн: отметки о доставке копятся в локальной базе. Отправка накопленного запускается в области ViewModel экрана, когда появляется сеть.

Жалоба из поддержки: курьер отметил доставки в подвале без связи, закрыл приложение, поехал дальше. Сеть появилась, но данные на сервер так и не ушли — пришли только когда курьер снова открыл приложение вечером.

Что здесь нужно изменить?

  • Перенести запуск в глобальную область: она не привязана к экрану, поэтому ожидание сети переживёт закрытие приложения
  • Отдать отправку системному планировщику фоновой работы с условием наличия сети — он переживёт и закрытие, и перезагрузку
  • Хранить отметки в файле настроек вместо локальной базы: оттуда система сама отправит их при появлении сети
  • Поднять приоритет потока отправки и удерживать блокировку пробуждения всё время, пока данные не ушли на сервер

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела