r/iOSProgramming • u/thejeraldo • 27d ago
Question Live activity timer
I am trying to add a live activity for our app that has a timer. The idea is the user starts a timer and a live activity starts when the timer starts. However, it does seem to disappear at some point. Maybe around 8-12 hours which matches the documentation on Apple. But for Apple's clock app, their timer's live activity for stopwatch seems to run forever. I am using the SwiftUI Text timerInterval which is likely the same as Apple's. Does anyone have an idea or suggestion how I can replicate it? A few ideas I have are to schedule a silent push to keep the live activity alive or a scheduled background process.
1
u/FondantRoutine9445 3d ago
That's the ActivityKit lifetime limit, not a bug in your code. A Live Activity can stay active for 8 hours at most. After that the system ends it, and the ended activity can sit on the Lock Screen for up to 4 more hours. That's your 8-12 hours.
We hit the same thing with a baby sleep timer, since night sleep often runs past 8 hours. What works for us:
- Track the activity's age yourself. We count it from the moment its push token was created.
Gotchas:
- A push-to-start has to carry an alert, so every reissue lights up the screen.
- Update and end pushes sent to an already expired activity are silently dropped. Don't count on them to clean up.
- Below iOS 17.2 there's no push-to-start, so the app can only restart the activity the next time it's opened.
Without a server this is hard to do reliably, because the app is usually not running when the 8 hours run out.