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