# DnsOptions.StaleDnsOptions.Builder


```
public final class DnsOptions.StaleDnsOptions.Builder
```

<br />

*** ** * ** ***

Builder for `https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/DnsOptions.StaleDnsOptions`.

## Summary

| ### Public methods |
|---|---|
| `https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/DnsOptions.StaleDnsOptions.Builder` | `https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/DnsOptions.StaleDnsOptions.Builder#allowCrossNetworkUsage(boolean)(boolean allowCrossNetworkUsage)` Sets whether to return results originating from other networks or not. |
| `https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/DnsOptions.StaleDnsOptions` | `https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/DnsOptions.StaleDnsOptions.Builder#build()()` Creates and returns the final `https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/DnsOptions.StaleDnsOptions` instance, based on the values in this builder. |
| `https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/DnsOptions.StaleDnsOptions.Builder` | `@https://developer.android.com/reference/androidx/annotation/RequiresApi.html(value = https://developer.android.com/reference/android/os/VERSION_CODES.html#O) https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/DnsOptions.StaleDnsOptions.Builder#setFreshLookupTimeout(java.time.Duration)(@https://developer.android.com/reference/androidx/annotation/NonNull.html https://developer.android.com/reference/java/time/Duration.html freshLookupTimeout)` Same as `https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/DnsOptions.StaleDnsOptions.Builder#setFreshLookupTimeoutMillis(long)` but using `https://developer.android.com/reference/java/time/Duration.html`. |
| `https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/DnsOptions.StaleDnsOptions.Builder` | `https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/DnsOptions.StaleDnsOptions.Builder#setFreshLookupTimeoutMillis(long)(long freshLookupTimeoutMillis)` Sets how long (in milliseconds) to wait for a DNS request to return before using a stale result instead. |
| `https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/DnsOptions.StaleDnsOptions.Builder` | `@https://developer.android.com/reference/androidx/annotation/RequiresApi.html(value = https://developer.android.com/reference/android/os/VERSION_CODES.html#O) https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/DnsOptions.StaleDnsOptions.Builder#setMaxExpiredDelay(java.time.Duration)(@https://developer.android.com/reference/androidx/annotation/NonNull.html https://developer.android.com/reference/java/time/Duration.html maxExpiredDelay)` Same as `https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/DnsOptions.StaleDnsOptions.Builder#setMaxExpiredDelayMillis(long)` but using `https://developer.android.com/reference/java/time/Duration.html`. |
| `https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/DnsOptions.StaleDnsOptions.Builder` | `https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/DnsOptions.StaleDnsOptions.Builder#setMaxExpiredDelayMillis(long)(long maxExpiredDelayMillis)` Sets how long (in milliseconds) past expiration to consider using expired results. |
| `https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/DnsOptions.StaleDnsOptions.Builder` | `https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/DnsOptions.StaleDnsOptions.Builder#useStaleOnNameNotResolved(boolean)(boolean useStaleOnNameNotResolved)` Sets whether to allow use of stale DNS results when network resolver fails to resolve the hostname. |

## Public methods

### allowCrossNetworkUsage

```
public DnsOptions.StaleDnsOptions.Builder allowCrossNetworkUsage(boolean allowCrossNetworkUsage)
```

Sets whether to return results originating from other networks or not. Normally, Cronet clears the DNS cache entirely when switching connections, e.g. between two Wi-Fi networks or from Wi-Fi to 4G.

| Returns |
|---|---|
| `https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/DnsOptions.StaleDnsOptions.Builder` | the builder for chaining |

### build

```
public DnsOptions.StaleDnsOptions build()
```

Creates and returns the final `https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/DnsOptions.StaleDnsOptions` instance, based on the values in this builder.

### setFreshLookupTimeout

```
@RequiresApi(value = VERSION_CODES.O)
public DnsOptions.StaleDnsOptions.Builder setFreshLookupTimeout(@NonNull Duration freshLookupTimeout)
```

Same as `https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/DnsOptions.StaleDnsOptions.Builder#setFreshLookupTimeoutMillis(long)` but using `https://developer.android.com/reference/java/time/Duration.html`.

| Returns |
|---|---|
| `https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/DnsOptions.StaleDnsOptions.Builder` | the builder for chaining |

### setFreshLookupTimeoutMillis

```
public DnsOptions.StaleDnsOptions.Builder setFreshLookupTimeoutMillis(long freshLookupTimeoutMillis)
```

Sets how long (in milliseconds) to wait for a DNS request to return before using a stale result instead. If set to zero, returns stale results instantly but continues the DNS request in the background to update the cache.

| Returns |
|---|---|
| `https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/DnsOptions.StaleDnsOptions.Builder` | the builder for chaining |

### setMaxExpiredDelay

```
@RequiresApi(value = VERSION_CODES.O)
public DnsOptions.StaleDnsOptions.Builder setMaxExpiredDelay(@NonNull Duration maxExpiredDelay)
```

Same as `https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/DnsOptions.StaleDnsOptions.Builder#setMaxExpiredDelayMillis(long)` but using `https://developer.android.com/reference/java/time/Duration.html`.

| Returns |
|---|---|
| `https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/DnsOptions.StaleDnsOptions.Builder` | the builder for chaining |

### setMaxExpiredDelayMillis

```
public DnsOptions.StaleDnsOptions.Builder setMaxExpiredDelayMillis(long maxExpiredDelayMillis)
```

Sets how long (in milliseconds) past expiration to consider using expired results. Setting the value to zero means expired records can be used indefinitely.

| Returns |
|---|---|
| `https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/DnsOptions.StaleDnsOptions.Builder` | the builder for chaining |

### useStaleOnNameNotResolved

```
public DnsOptions.StaleDnsOptions.Builder useStaleOnNameNotResolved(boolean useStaleOnNameNotResolved)
```

Sets whether to allow use of stale DNS results when network resolver fails to resolve the hostname.

Depending on the use case, if Cronet quickly sees a fresh failure, it may be desirable to use the failure as it is technically the fresher result, and we had such a fresh result quickly; or, prefer having any result (even if stale) to use over having a failure.

| Returns |
|---|---|
| `https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/DnsOptions.StaleDnsOptions.Builder` | the builder for chaining |