AndroidTaskScheduler

Android implementation of TaskScheduler backed by WorkManager.

Constraint mapping: | KMPWorker Constraint | WorkManager Equivalent | |-------------------------|--------------------------------| | requiresInternet = true | NetworkType.CONNECTED | | requiresCharging = true | setRequiresCharging(true) | | batteryNotLow = true | setRequiresBatteryNotLow(true) |

RetryPolicy mapping: | KMPWorker Policy | WorkManager BackoffPolicy | |-------------------------|--------------------------------| | RetryPolicy.Linear | BackoffPolicy.LINEAR | | RetryPolicy.Exponential | BackoffPolicy.EXPONENTIAL |

Tasks are enqueued as unique work so duplicate IDs replace or keep existing work.

Constructors

Link copied to clipboard
constructor(context: Context)

Functions

Link copied to clipboard
open suspend override fun cancel(taskId: String)
Link copied to clipboard
open suspend fun cancelBatch(taskIds: List<String>)
Link copied to clipboard
open suspend override fun cancelByTag(tag: String)
Link copied to clipboard
open suspend fun clearExecutionHistory()
Link copied to clipboard
open suspend override fun enqueue(request: TaskRequest)
Link copied to clipboard
open suspend fun enqueueBatch(requests: List<TaskRequest>)
Link copied to clipboard
open suspend fun enqueueChain(chain: TaskChain)
open suspend override fun enqueueChain(chain: TaskChain, policy: ChainPolicy): Nothing
Link copied to clipboard
open suspend fun getExecutionHistory(limit: Int): List<ExecutionRecord>
Link copied to clipboard
open override fun observe(taskId: String): Flow<TaskState>
Link copied to clipboard
open override fun observeAll(): Flow<Pair<String, TaskState>>
Link copied to clipboard
open override fun observeChain(chainId: String): Flow<TaskState>
Link copied to clipboard
open override fun register(taskId: String, block: suspend () -> Unit)
Link copied to clipboard
open override fun registerWithContext(taskId: String, block: suspend TaskExecutionContext.() -> Unit)