# RetryPolicy.RetryConfig.Builder

Artifact: [androidx.camera:camera-core](https://developer.android.com/jetpack/androidx/releases/camera) [View Source](https://cs.android.com/search?q=file:androidx/camera/core/RetryPolicy.java+class:androidx.camera.core.RetryPolicy.RetryConfig.Builder) Added in [1.4.0](https://developer.android.com/jetpack/androidx/releases/camera#1.4.0)

*** ** * ** ***


```
@ExperimentalRetryPolicy
public final class RetryPolicy.RetryConfig.Builder
```

<br />

*** ** * ** ***

A builder class for creating and customizing `https://developer.android.com/reference/androidx/camera/core/RetryPolicy.RetryConfig` objects.

While predefined configs like `https://developer.android.com/reference/androidx/camera/core/RetryPolicy.RetryConfig#DEFAULT_DELAY_RETRY()` are recommended for typical recovery scenarios, this builder allows for fine-tuned control when specific requirements necessitate a different approach.

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/camera/core/RetryPolicy.RetryConfig.Builder#Builder()()` |

| ### Public methods |
|---|---|
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/camera/core/RetryPolicy.RetryConfig` | `https://developer.android.com/reference/androidx/camera/core/RetryPolicy.RetryConfig.Builder#build()()` Builds the customized `https://developer.android.com/reference/androidx/camera/core/RetryPolicy.RetryConfig` object. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/camera/core/RetryPolicy.RetryConfig.Builder` | `https://developer.android.com/reference/androidx/camera/core/RetryPolicy.RetryConfig.Builder#setRetryDelayInMillis(long)(@https://developer.android.com/reference/androidx/annotation/IntRange(from = 100, to = 2000) long timeoutInMillis)` Sets the retry delay in milliseconds. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/camera/core/RetryPolicy.RetryConfig.Builder` | `https://developer.android.com/reference/androidx/camera/core/RetryPolicy.RetryConfig.Builder#setShouldRetry(boolean)(boolean shouldRetry)` Specifies whether a retry should be attempted. |

## Public constructors

### Builder

Added in 1.4.0

```
public Builder()
```

## Public methods

### build

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

```
public @NonNull RetryPolicy.RetryConfig build()
```

Builds the customized `https://developer.android.com/reference/androidx/camera/core/RetryPolicy.RetryConfig` object.

| Returns |
|---|---|
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/camera/core/RetryPolicy.RetryConfig` | The configured RetryConfig. |

### setRetryDelayInMillis

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

```
public @NonNull RetryPolicy.RetryConfig.Builder setRetryDelayInMillis(@IntRange(from = 100, to = 2000) long timeoutInMillis)
```

Sets the retry delay in milliseconds.

If set, the initialization will be retried after the specified delay. For optimal results, the delay should be within the range of 100 to 2000 milliseconds. This aligns with lab testing, which suggests this range provides sufficient recovery time for most common camera issues while minimizing latency.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/IntRange(from = 100, to = 2000) long timeoutInMillis` | The delay in milliseconds. |

| Returns |
|---|---|
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/camera/core/RetryPolicy.RetryConfig.Builder` | `this` for method chaining. |

### setShouldRetry

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

```
public @NonNull RetryPolicy.RetryConfig.Builder setShouldRetry(boolean shouldRetry)
```

Specifies whether a retry should be attempted.

| Parameters |
|---|---|
| `boolean shouldRetry` | If true (the default), initialization will be retried. If false, initialization will not be retried. |

| Returns |
|---|---|
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/camera/core/RetryPolicy.RetryConfig.Builder` | `this` for method chaining. |