ExecutionHint

@Serializable
sealed interface ExecutionHint

A scheduling hint about how the platform should treat a WorkRequest.

Sealed (not a Boolean) because the platforms divide the space differently: Android cares about quota policy when expediting; iOS cares about which BGTaskRequest subtype to use.

v1 ships Standard and Expedited only. LongRunning (Android setForeground + foreground service + notification) is v2.

Inheritors

Types

Link copied to clipboard
@Serializable
data class Expedited(val onQuotaExhausted: QuotaPolicy) : ExecutionHint

Android: setExpedited(...) with the given onQuotaExhausted policy. iOS: BGAppRefreshTaskRequest (short and frequent — typically ~30s budget, ignores WorkConstraints.requiresCharging).

Link copied to clipboard
@Serializable
data object Standard : ExecutionHint

Default. Android: regular WorkRequest. iOS: BGProcessingTaskRequest (longer execution window, can require power / network).