# OneTimeWorkRequest.Builder

Artifact: [androidx.work:work-runtime](https://developer.android.com/jetpack/androidx/releases/work) [View Source](https://cs.android.com/search?q=file:androidx/work/OneTimeWorkRequest.kt+class:androidx.work.OneTimeWorkRequest.Builder) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/work#1.0.0)

*** ** * ** ***


```
class OneTimeWorkRequest.Builder : WorkRequest.Builder<OneTimeWorkRequest.Builder, OneTimeWorkRequest>
```

<br />

|---|---|---|
| [kotlin.Any](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html) |||
| ↳ | [androidx.work.WorkRequest.Builder](https://developer.android.com/reference/kotlin/androidx/work/WorkRequest.Builder)\<[OneTimeWorkRequest.Builder](https://developer.android.com/reference/kotlin/androidx/work/OneTimeWorkRequest.Builder), [OneTimeWorkRequest](https://developer.android.com/reference/kotlin/androidx/work/OneTimeWorkRequest)\> ||
|   | ↳ | [androidx.work.OneTimeWorkRequest.Builder](https://developer.android.com/reference/kotlin/androidx/work/OneTimeWorkRequest.Builder) |

*** ** * ** ***

Builder for `https://developer.android.com/reference/kotlin/androidx/work/OneTimeWorkRequest`s.

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/kotlin/androidx/work/OneTimeWorkRequest.Builder#Builder(java.lang.Class)(workerClass: https://developer.android.com/reference/java/lang/Class.html<https://developer.android.com/reference/kotlin/androidx/work/ListenableWorker>)` |
| `https://developer.android.com/reference/kotlin/androidx/work/OneTimeWorkRequest.Builder#Builder(kotlin.reflect.KClass)(workerClass: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-class/index.html<https://developer.android.com/reference/kotlin/androidx/work/ListenableWorker>)` Creates a builder for `https://developer.android.com/reference/kotlin/androidx/work/OneTimeWorkRequest`s. |

| ### Public functions |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/work/OneTimeWorkRequest.Builder` | `https://developer.android.com/reference/kotlin/androidx/work/OneTimeWorkRequest.Builder#setInputMerger(java.lang.Class)(inputMerger: https://developer.android.com/reference/java/lang/Class.html<https://developer.android.com/reference/kotlin/androidx/work/InputMerger>)` Specifies the `https://developer.android.com/reference/kotlin/androidx/work/InputMerger` class name for this `https://developer.android.com/reference/kotlin/androidx/work/OneTimeWorkRequest`. |

| ### Extension functions |
|---|---|
| `inline https://developer.android.com/reference/kotlin/androidx/work/OneTimeWorkRequest.Builder` | `https://developer.android.com/reference/kotlin/androidx/work/OneTimeWorkRequest.Builder.https://developer.android.com/reference/kotlin/androidx/work/OneTimeWorkRequest.Builder#(androidx.work.OneTimeWorkRequest.Builder).setInputMerger(kotlin.reflect.KClass)( inputMerger: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-class/index.html<https://developer.android.com/reference/kotlin/androidx/work/InputMerger> )` Sets an `https://developer.android.com/reference/kotlin/androidx/work/InputMerger` on the `https://developer.android.com/reference/kotlin/androidx/work/OneTimeWorkRequest.Builder`. |

### Inherited functions

From [androidx.work.WorkRequest.Builder](https://developer.android.com/reference/kotlin/androidx/work/WorkRequest.Builder) `https://developer.android.com/reference/kotlin/androidx/work/OneTimeWorkRequest.Builder` `https://developer.android.com/reference/kotlin/androidx/work/WorkRequest.Builder#addTag(kotlin.String)(tag: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)`

Adds a tag for the work.
`https://developer.android.com/reference/kotlin/androidx/work/OneTimeWorkRequest` `https://developer.android.com/reference/kotlin/androidx/work/WorkRequest.Builder#build()()`

Builds a `https://developer.android.com/reference/kotlin/androidx/work/WorkRequest` based on this `https://developer.android.com/reference/kotlin/androidx/work/WorkRequest.Builder`.
`https://developer.android.com/reference/kotlin/androidx/work/OneTimeWorkRequest.Builder` `@https://developer.android.com/reference/kotlin/androidx/annotation/RequiresApi(value = 26)
https://developer.android.com/reference/kotlin/androidx/work/WorkRequest.Builder#keepResultsForAtLeast(java.time.Duration)(duration: https://developer.android.com/reference/java/time/Duration.html)`

Specifies that the results of this work should be kept for at least the specified amount of time.
`https://developer.android.com/reference/kotlin/androidx/work/OneTimeWorkRequest.Builder` `https://developer.android.com/reference/kotlin/androidx/work/WorkRequest.Builder#keepResultsForAtLeast(kotlin.Long,java.util.concurrent.TimeUnit)(duration: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, timeUnit: https://developer.android.com/reference/java/util/concurrent/TimeUnit.html)`

Specifies that the results of this work should be kept for at least the specified amount of time.
`https://developer.android.com/reference/kotlin/androidx/work/OneTimeWorkRequest.Builder` `@https://developer.android.com/reference/kotlin/androidx/annotation/RequiresApi(value = 26)
https://developer.android.com/reference/kotlin/androidx/work/WorkRequest.Builder#setBackoffCriteria(androidx.work.BackoffPolicy,java.time.Duration)(backoffPolicy: https://developer.android.com/reference/kotlin/androidx/work/BackoffPolicy, duration: https://developer.android.com/reference/java/time/Duration.html)`

Sets the backoff policy and backoff delay for the work.
`https://developer.android.com/reference/kotlin/androidx/work/OneTimeWorkRequest.Builder` `https://developer.android.com/reference/kotlin/androidx/work/WorkRequest.Builder#setBackoffCriteria(androidx.work.BackoffPolicy,kotlin.Long,java.util.concurrent.TimeUnit)(
backoffPolicy: https://developer.android.com/reference/kotlin/androidx/work/BackoffPolicy,
backoffDelay: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html,
timeUnit: https://developer.android.com/reference/java/util/concurrent/TimeUnit.html
)`

Sets the backoff policy and backoff delay for the work.
`https://developer.android.com/reference/kotlin/androidx/work/OneTimeWorkRequest.Builder` `@https://developer.android.com/reference/kotlin/androidx/work/ExperimentalWorkRequestBuilderApi
https://developer.android.com/reference/kotlin/androidx/work/WorkRequest.Builder#setBackoffForSystemInterruptions()()`

Specifies that the backoff policy (as specified via `https://developer.android.com/reference/kotlin/androidx/work/WorkRequest.Builder#setBackoffCriteria(androidx.work.BackoffPolicy,kotlin.Long,java.util.concurrent.TimeUnit)`) will be applied when work is interrupted by the system without the app requesting it.
`https://developer.android.com/reference/kotlin/androidx/work/OneTimeWorkRequest.Builder` `https://developer.android.com/reference/kotlin/androidx/work/WorkRequest.Builder#setConstraints(androidx.work.Constraints)(constraints: https://developer.android.com/reference/kotlin/androidx/work/Constraints)`

Adds constraints to the `https://developer.android.com/reference/kotlin/androidx/work/WorkRequest`.
`open https://developer.android.com/reference/kotlin/androidx/work/OneTimeWorkRequest.Builder` `https://developer.android.com/reference/kotlin/androidx/work/WorkRequest.Builder#setExpedited(androidx.work.OutOfQuotaPolicy)(policy: https://developer.android.com/reference/kotlin/androidx/work/OutOfQuotaPolicy)`

Marks the `https://developer.android.com/reference/kotlin/androidx/work/WorkRequest` as important to the user.
`https://developer.android.com/reference/kotlin/androidx/work/OneTimeWorkRequest.Builder` `https://developer.android.com/reference/kotlin/androidx/work/WorkRequest.Builder#setId(java.util.UUID)(id: https://developer.android.com/reference/java/util/UUID.html)`

Sets a unique identifier for this unit of work.
`open https://developer.android.com/reference/kotlin/androidx/work/OneTimeWorkRequest.Builder` `@https://developer.android.com/reference/kotlin/androidx/annotation/RequiresApi(value = 26)
https://developer.android.com/reference/kotlin/androidx/work/WorkRequest.Builder#setInitialDelay(java.time.Duration)(duration: https://developer.android.com/reference/java/time/Duration.html)`

Sets an initial delay for the `https://developer.android.com/reference/kotlin/androidx/work/WorkRequest`.
`open https://developer.android.com/reference/kotlin/androidx/work/OneTimeWorkRequest.Builder` `https://developer.android.com/reference/kotlin/androidx/work/WorkRequest.Builder#setInitialDelay(kotlin.Long,java.util.concurrent.TimeUnit)(duration: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, timeUnit: https://developer.android.com/reference/java/util/concurrent/TimeUnit.html)`

Sets an initial delay for the `https://developer.android.com/reference/kotlin/androidx/work/WorkRequest`.
`https://developer.android.com/reference/kotlin/androidx/work/OneTimeWorkRequest.Builder` `https://developer.android.com/reference/kotlin/androidx/work/WorkRequest.Builder#setInputData(androidx.work.Data)(inputData: https://developer.android.com/reference/kotlin/androidx/work/Data)`

Adds input `https://developer.android.com/reference/kotlin/androidx/work/Data` to the work.
`https://developer.android.com/reference/kotlin/androidx/work/OneTimeWorkRequest.Builder` `https://developer.android.com/reference/kotlin/androidx/work/WorkRequest.Builder#setTraceTag(kotlin.String)(traceTag: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)`

Specifies the name of the trace span to be used by `https://developer.android.com/reference/kotlin/androidx/work/WorkManager` when executing the specified `https://developer.android.com/reference/kotlin/androidx/work/WorkRequest`.

## Public constructors

### Builder

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/work#1.0.0)

```
Builder(workerClass: Class<ListenableWorker>)
```

| Parameters |
|---|---|
| `workerClass: https://developer.android.com/reference/java/lang/Class.html<https://developer.android.com/reference/kotlin/androidx/work/ListenableWorker>` | The `https://developer.android.com/reference/kotlin/androidx/work/ListenableWorker` class to run for this work |

### Builder

Added in [2.10.0](https://developer.android.com/jetpack/androidx/releases/work#2.10.0)

```
Builder(workerClass: KClass<ListenableWorker>)
```

Creates a builder for `https://developer.android.com/reference/kotlin/androidx/work/OneTimeWorkRequest`s.

| Parameters |
|---|---|
| `workerClass: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-class/index.html<https://developer.android.com/reference/kotlin/androidx/work/ListenableWorker>` | The `https://developer.android.com/reference/kotlin/androidx/work/ListenableWorker` class to run for this work |

## Public functions

### setInputMerger

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/work#1.0.0)

```
fun setInputMerger(inputMerger: Class<InputMerger>): OneTimeWorkRequest.Builder
```

Specifies the `https://developer.android.com/reference/kotlin/androidx/work/InputMerger` class name for this `https://developer.android.com/reference/kotlin/androidx/work/OneTimeWorkRequest`.

Before workers run, they receive input `https://developer.android.com/reference/kotlin/androidx/work/Data` from their parent workers, as well as anything specified directly to them via `https://developer.android.com/reference/kotlin/androidx/work/WorkRequest.Builder#setInputData(androidx.work.Data)`. An InputMerger takes all of these objects and converts them to a single merged `https://developer.android.com/reference/kotlin/androidx/work/Data` to be used as the worker input. The default InputMerger is `https://developer.android.com/reference/kotlin/androidx/work/OverwritingInputMerger`. This library also offers `https://developer.android.com/reference/kotlin/androidx/work/ArrayCreatingInputMerger`; you can also specify your own.

| Parameters |
|---|---|
| `inputMerger: https://developer.android.com/reference/java/lang/Class.html<https://developer.android.com/reference/kotlin/androidx/work/InputMerger>` | The class name of the `https://developer.android.com/reference/kotlin/androidx/work/InputMerger` for this `https://developer.android.com/reference/kotlin/androidx/work/OneTimeWorkRequest` |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/work/OneTimeWorkRequest.Builder` | The current `https://developer.android.com/reference/kotlin/androidx/work/OneTimeWorkRequest.Builder` |

## Extension functions

### OneTimeWorkRequest.Builder.setInputMerger

Artifact: [androidx.work:work-runtime](https://developer.android.com/jetpack/androidx/releases/work) [View Source](https://cs.android.com/search?q=file:androidx/work/OneTimeWorkRequest.kt+function:setInputMerger)

```
inline fun OneTimeWorkRequest.Builder.setInputMerger(
    inputMerger: KClass<InputMerger>
): OneTimeWorkRequest.Builder
```

Sets an `https://developer.android.com/reference/kotlin/androidx/work/InputMerger` on the `https://developer.android.com/reference/kotlin/androidx/work/OneTimeWorkRequest.Builder`.