У меня просто 2 задачи:
1. Гарантированно и быстро получать ответ от сервера (новые заказы, изменения статусов и т.д). Чтобы работало при свернутом / закрытом приложении даже. Тут я думаю либо Service (foreground, чтобы не убило + Socket), либо просто Service ( + обычные запросы раз в N -секунд), Либо планировщик + запросы
2. Отправлять координаты раз в N - секунд. Те же варианты.
Имеются другие?
Сейчас получение информации идет через пуши, но они не гарантировано быстро, ну и всякие настройки могут блочить от ОС (MUI, EMUI и т.д)