SchedulerGuarantees

data class SchedulerGuarantees(val survivesProcessDeath: Boolean, val survivesReboot: Boolean, val survivesForceQuit: Boolean, val honoursWallClock: Boolean, val supportsRetryBackoff: Boolean, val cancelsInFlight: Boolean, val minimumPeriodicInterval: Duration?, val maxConcurrentTasks: Int?)

What the current platform's Scheduler actually guarantees.

Honest about platform differences. Read via Scheduler.guarantees and use for UX decisions ("on iOS, show 'open the app daily so we can sync'").

v1 values per platform:

FieldAndroidiOS 18macOS 15JVM
survivesProcessDeathtruetruefalse (in-process)false (in-process)
survivesReboottruetruefalsefalse
survivesForceQuittruefalsefalsefalse
honoursWallClockapproxfalse (hint only)approxapprox
supportsRetryBackofftruetrue (emulated)true (emulated)true (emulated)
cancelsInFlighttruefalsetruetrue
minimumPeriodicInterval15 min15 min recommended1 sec1 sec
maxConcurrentTasksnull~1000nullnull

Constructors

Link copied to clipboard
constructor(survivesProcessDeath: Boolean, survivesReboot: Boolean, survivesForceQuit: Boolean, honoursWallClock: Boolean, supportsRetryBackoff: Boolean, cancelsInFlight: Boolean, minimumPeriodicInterval: Duration?, maxConcurrentTasks: Int?)

Properties

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard