AndroidKmpWorker

class AndroidKmpWorker(context: Context, eventStore: EventStore? = null, chainRepo: ChainRepository? = null, telemetry: TelemetryCollector? = null, val foregroundConfig: ForegroundConfig? = null) : KmpWorker

Android concrete implementation of KmpWorker.

Instantiate once (e.g. in your Application class) and inject throughout the app. Jetpack Startup (KmpWorkerInitializer) pre-warms WorkManager automatically — no manual initialization required beyond creating this instance.

class MyApp : Application() {
val kmpWorker: KmpWorker by lazy {
AndroidKmpWorker(
context = this,
eventStore = SqlDelightEventStore(database), // optional, enables cold-launch replay
chainRepo = SqlDelightChainRepository(database) // optional, enables TaskChain support
)
}
}

Parameters

context

Application context.

eventStore

Optional persistent event store. Install to enable cold-launch completion replay.

chainRepo

Optional chain repository. Required for enqueueChain support.

Constructors

Link copied to clipboard
constructor(context: Context, eventStore: EventStore? = null, chainRepo: ChainRepository? = null, telemetry: TelemetryCollector? = null, foregroundConfig: ForegroundConfig? = null)

Properties

Link copied to clipboard

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 override 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 override fun enqueueChain(chain: TaskChain, policy: ChainPolicy)
open suspend fun enqueueChain(chain: TaskChain)
Link copied to clipboard
open suspend override 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)