# 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)

*** ** * ** ***


```
public final class OneTimeWorkRequest.Builder extends WorkRequest.Builder<@NonNull OneTimeWorkRequest.Builder, @NonNull OneTimeWorkRequest>
```

<br />

|---|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object.html) |||
| ↳ | [androidx.work.WorkRequest.Builder](https://developer.android.com/reference/androidx/work/WorkRequest.Builder)\<@[NonNull](https://developer.android.com/reference/androidx/annotation/NonNull) [OneTimeWorkRequest.Builder](https://developer.android.com/reference/androidx/work/OneTimeWorkRequest.Builder), @[NonNull](https://developer.android.com/reference/androidx/annotation/NonNull) [OneTimeWorkRequest](https://developer.android.com/reference/androidx/work/OneTimeWorkRequest)\> ||
|   | ↳ | [androidx.work.OneTimeWorkRequest.Builder](https://developer.android.com/reference/androidx/work/OneTimeWorkRequest.Builder) |

*** ** * ** ***

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

## Summary

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

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

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

### Inherited methods

From [androidx.work.WorkRequest.Builder](https://developer.android.com/reference/androidx/work/WorkRequest.Builder) `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/work/OneTimeWorkRequest.Builder` `https://developer.android.com/reference/androidx/work/WorkRequest.Builder#addTag(kotlin.String)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html tag)`

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

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

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

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

Sets the backoff policy and backoff delay for the work.
`final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/work/OneTimeWorkRequest.Builder` `https://developer.android.com/reference/androidx/work/WorkRequest.Builder#setBackoffCriteria(androidx.work.BackoffPolicy,kotlin.Long,java.util.concurrent.TimeUnit)(
@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/work/BackoffPolicy backoffPolicy,
long backoffDelay,
@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/concurrent/TimeUnit.html timeUnit
)`

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

Specifies that the backoff policy (as specified via `https://developer.android.com/reference/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.
`final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/work/OneTimeWorkRequest.Builder` `https://developer.android.com/reference/androidx/work/WorkRequest.Builder#setConstraints(androidx.work.Constraints)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/work/Constraints constraints)`

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

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

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

Sets an initial delay for the `https://developer.android.com/reference/androidx/work/WorkRequest`.
`@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/work/OneTimeWorkRequest.Builder` `https://developer.android.com/reference/androidx/work/WorkRequest.Builder#setInitialDelay(kotlin.Long,java.util.concurrent.TimeUnit)(long duration, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/concurrent/TimeUnit.html timeUnit)`

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

Adds input `https://developer.android.com/reference/androidx/work/Data` to the work.
`final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/work/OneTimeWorkRequest.Builder` `https://developer.android.com/reference/androidx/work/WorkRequest.Builder#setTraceTag(kotlin.String)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html traceTag)`

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

## Public constructors

### Builder

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

```
public Builder(@NonNull Class<@NonNull ListenableWorker> workerClass)
```

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/Class.html<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/work/ListenableWorker> workerClass` | The `https://developer.android.com/reference/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)

```
public Builder(@NonNull KClass<@NonNull ListenableWorker> workerClass)
```

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

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

## Public methods

### setInputMerger

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

```
public final @NonNull OneTimeWorkRequest.Builder setInputMerger(@NonNull Class<@NonNull InputMerger> inputMerger)
```

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

Before workers run, they receive input `https://developer.android.com/reference/androidx/work/Data` from their parent workers, as well as anything specified directly to them via `https://developer.android.com/reference/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/androidx/work/Data` to be used as the worker input. The default InputMerger is `https://developer.android.com/reference/androidx/work/OverwritingInputMerger`. This library also offers `https://developer.android.com/reference/androidx/work/ArrayCreatingInputMerger`; you can also specify your own.

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

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

## Extension functions

### OneTimeWorkRequestKt.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)

```
public final @NonNull OneTimeWorkRequest.Builder OneTimeWorkRequestKt.setInputMerger(
    @NonNull OneTimeWorkRequest.Builder receiver,
    @NonNull KClass<@NonNull InputMerger> inputMerger
)
```

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