Background tracking, and the Android OEM asterisk
01 Sept 2026 · Field Track 360
Nothing to build - the SDKs own it. There is no background isolate, no headless callback and no second notification.
- Backgrounded for a 30-minute drive: full trace on both platforms.
- Swipe-kill mid-session: Android capture continues (stopWithTask="false"). On iOS capture stops, but a significant-location change or region exit relaunches the app in the background and capture resumes, with no Dart involved.
- Reboot: Android restores per ServiceConfig.startOnBoot; iOS resumes at the next launch or SLC trigger.
- Force-quit on iOS: no reliable relaunch. That is OS policy, not an SDK gap - surface it in tracking-health UI and never build correctness on it.
The OEM problem, stated honestly
"Capture continues after a swipe-kill" is what stock Android does. Several Chinese OEM skins - Xiaomi/Redmi, Oppo/Realme, Vivo, Huawei, and Samsung to a lesser degree - override it and kill the whole process, foreground service included.
No SDK can defeat this from inside the app; it is enforced above it. What works is per-device user settings, and a tracking app has to ask for them:
- Autostart / Auto-launch - enable it
- Battery saver - set to No restrictions
- Lock the app in Recents - the padlock on the task card
Symptoms when they are not set: the notification disappears within seconds or minutes of the app being swiped away, the session stays open with a gap in its points, and a relaunch reports it via SessionInterruptedEvent.