Your phone is trying to kill this app (and every other one)
The battery post ended on a warning: all that careful machinery assumes the operating system lets the app wake up when the sensors call. This post is about the times it doesn’t.
Here’s the uncomfortable truth of the trade every location app lives with: your phone treats background apps as suspects. It freezes them, starves them, and sometimes kills them outright. Mostly that’s a good thing, it’s why your battery lasts the day. But an app whose whole job is “keep watching even when I’m not looking at you” sits exactly on the fault line.
Why your phone distrusts apps, and why it’s right to
A decade ago, any app could run whenever it pleased, and plenty did: polling, syncing, tracking, draining. The platforms responded with force. Android introduced Doze, which puts an idle phone into a deep sleep where background work is batched into rare windows. iOS went further earlier: an app you’re not looking at is suspended within seconds, full stop.
The deal both platforms now offer is the same: background work happens through our official channels, or not at all. For most apps, a frozen background is invisible. For a safety app, it’s the difference between “arrived at school” and silence.
The official channels, and how Fenzly uses them
Fenzly plays by the book, and the book offers three lawful ways to exist in the background.
First, the visible worker. When a trip is being recorded, Android requires a foreground service: the app runs with a persistent notification on your screen. That notification isn’t decoration, it’s the legal contract, the OS spares what the user can see. It’s also honest by accident: you always know when recording is active.
Second, the OS’s own watchers. Between trips, Fenzly isn’t running at all in any meaningful sense; it has delegated the watching to the system, the chip-level geofences and the motion detector. When something happens, the OS relaunches the app for a few seconds, it does its sealing and sending, and it’s frozen again. The app doesn’t survive in the background; it resurrects, briefly, on demand.
Third, the remote knock. When someone shares something with you and your app is dead, our server can’t reach it directly; it asks Google’s or Apple’s notification service to wake it, the one US hop we’ve been open about. One detail matters on Android: a silent, invisible push is precisely the kind some phones ignore for killed apps, so wake-ups that matter ride visible notifications by design.
Then there are the phones that don’t follow their own rules
Everything above is the official contract. The messy secret of the Android world is that several major manufacturers layer their own battery managers on top, and those don’t honour the contract. They kill apps that followed every rule, silently, to win battery benchmarks. The community project dontkillmyapp.com has documented this for years, brand by brand; some of the biggest names in the market are also the worst offenders.
Android offers a partial defence: an app can ask to be exempted from battery optimisation, and Fenzly’s setup walks you through granting it, along with each permission, one screen at a time, explaining why. On most phones, that’s enough.
We owe you a field story here, because it defines the limit. During our own testing, a phone that already had the battery exemption froze the app’s motion detection for over two hours, in the middle of a two-hour drive, while the very same phone kept its network connection alive. The exemption you granted covers a lot; it does not cover everything on every brand. Anyone who tells you their location app “just works” on every Android phone has not tested on enough Android phones.
Designing for a world that kills you
Since we can’t prevent every freeze, the engineering goal shifts: make sure a freeze causes a gap, never a lie, and heal the gap as soon as possible.
That principle shows up all over Fenzly. Events that couldn’t be observed are reconstructed when the app next wakes: a missed departure is corrected by the next genuine crossing, and everything waiting to be shared sits safely in the offline outbox until it can flow. And rather than letting a silent phone quietly display a stale position, Fenzly surfaces the silence itself: when a family member’s phone hasn’t been reachable for hours, the map says so, “no connection since 14:20”, instead of letting you believe a frozen dot.
An old position presented as current is the most dangerous failure a safety app can have. We’d rather show you an honest question mark than a confident lie.
The honest limits
No app wins against the OS, ours included. A phone that’s off, out of battery, or where the app was manually force-stopped cannot be woken by anyone. The aggressive brands change their behaviour with every Android version, so this is a moving battle, not a solved problem. And on iOS, the rules are stricter but uniform: fewer brand surprises, less flexibility.
If Fenzly ever seems quiet on a phone, the setup screen’s checklist and the battery exemption are where to look first. And when the silence is real, the app will at least tell you it’s silence.
Next in the engineering chapter: your phone claims to know whether you’re walking, cycling or driving. It’s often wrong, in ways that are funnier than you’d expect, and we’ll show you why, and what we do about it.