Added in [API level 34](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  
Also in [S Extensions 7](https://developer.android.com/sdkExtensions) Summary: [Ctors](https://developer.android.com/reference/android/net/http/DnsOptions.StaleDnsOptions.Builder#pubctors) \| [Methods](https://developer.android.com/reference/android/net/http/DnsOptions.StaleDnsOptions.Builder#pubmethods) \| [Inherited Methods](https://developer.android.com/reference/android/net/http/DnsOptions.StaleDnsOptions.Builder#inhmethods)

# DnsOptions.StaleDnsOptions.Builder

*** ** * ** ***


`
public
static
final

class
DnsOptions.StaleDnsOptions.Builder
`


`

extends https://developer.android.com/reference/java/lang/Object


`

`


`

|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) ||
| ↳ | android.net.http.DnsOptions.StaleDnsOptions.Builder |

<br />

*** ** * ** ***

Builder for `https://developer.android.com/reference/android/net/http/DnsOptions.StaleDnsOptions`.

## Summary

| ### Public constructors ||
|---|---|
| ` https://developer.android.com/reference/android/net/http/DnsOptions.StaleDnsOptions.Builder#Builder()() ` |

| ### Public methods ||
|---|---|
| ` https://developer.android.com/reference/android/net/http/DnsOptions.StaleDnsOptions` | ` https://developer.android.com/reference/android/net/http/DnsOptions.StaleDnsOptions.Builder#build()() ` Creates and returns the final `https://developer.android.com/reference/android/net/http/DnsOptions.StaleDnsOptions` instance, based on the values in this builder. |
| ` https://developer.android.com/reference/android/net/http/DnsOptions.StaleDnsOptions.Builder` | ` https://developer.android.com/reference/android/net/http/DnsOptions.StaleDnsOptions.Builder#setAllowCrossNetworkUsage(int)(int state) ` Sets whether to return results originating from other networks or not. |
| ` https://developer.android.com/reference/android/net/http/DnsOptions.StaleDnsOptions.Builder` | ` https://developer.android.com/reference/android/net/http/DnsOptions.StaleDnsOptions.Builder#setFreshLookupTimeout(java.time.Duration)(https://developer.android.com/reference/java/time/Duration freshLookupTimeout) ` Sets how long (in milliseconds) to wait for a DNS request to return before using a stale result instead. |
| ` https://developer.android.com/reference/android/net/http/DnsOptions.StaleDnsOptions.Builder` | ` https://developer.android.com/reference/android/net/http/DnsOptions.StaleDnsOptions.Builder#setMaxExpiredDelay(java.time.Duration)(https://developer.android.com/reference/java/time/Duration maxExpiredDelay) ` Sets how long (in milliseconds) past expiration to consider using expired results. |
| ` https://developer.android.com/reference/android/net/http/DnsOptions.StaleDnsOptions.Builder` | ` https://developer.android.com/reference/android/net/http/DnsOptions.StaleDnsOptions.Builder#setUseStaleOnNameNotResolved(int)(int state) ` Sets whether to allow use of stale DNS results when network resolver fails to resolve the hostname. |

| ### Inherited methods |
|---|---|
| From class ` https://developer.android.com/reference/java/lang/Object ` |---|---| | ` https://developer.android.com/reference/java/lang/Object` | ` https://developer.android.com/reference/java/lang/Object#clone()() ` Creates and returns a copy of this object. | | ` boolean` | ` https://developer.android.com/reference/java/lang/Object#equals(java.lang.Object)(https://developer.android.com/reference/java/lang/Object obj) ` Indicates whether some other object is "equal to" this one. | | ` void` | ` https://developer.android.com/reference/java/lang/Object#finalize()() ` Called by the garbage collector on an object when garbage collection determines that there are no more references to the object. | | ` final https://developer.android.com/reference/java/lang/Class<?>` | ` https://developer.android.com/reference/java/lang/Object#getClass()() ` Returns the runtime class of this `Object`. | | ` int` | ` https://developer.android.com/reference/java/lang/Object#hashCode()() ` Returns a hash code value for the object. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#notify()() ` Wakes up a single thread that is waiting on this object's monitor. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#notifyAll()() ` Wakes up all threads that are waiting on this object's monitor. | | ` https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/java/lang/Object#toString()() ` Returns a string representation of the object. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#wait(long,%20int)(long timeoutMillis, int nanos) ` Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#wait(long)(long timeoutMillis) ` Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#wait()() ` Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*. | ||

## Public constructors

### Builder

Added in [API level 34](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  
Also in [S Extensions 7](https://developer.android.com/sdkExtensions)

```
public Builder ()
```

<br />

<br />

## Public methods

### build

Added in [API level 34](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  
Also in [S Extensions 7](https://developer.android.com/sdkExtensions)

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

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

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/net/http/DnsOptions.StaleDnsOptions` | This value cannot be `null`. <br /> |

### setAllowCrossNetworkUsage

Added in [API level 34](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  
Also in [S Extensions 7](https://developer.android.com/sdkExtensions)

```
public DnsOptions.StaleDnsOptions.Builder setAllowCrossNetworkUsage (int state)
```

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

<br />

| Parameters ||
|---|---|
| `state` | `int`: one of the DNS_OPTION_\* values. Value is one of the following: - `https://developer.android.com/reference/android/net/http/DnsOptions#DNS_OPTION_UNSPECIFIED` - `https://developer.android.com/reference/android/net/http/DnsOptions#DNS_OPTION_ENABLED` - `https://developer.android.com/reference/android/net/http/DnsOptions#DNS_OPTION_DISABLED` |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/net/http/DnsOptions.StaleDnsOptions.Builder` | the builder for chaining. This value cannot be `null`. <br /> |

### setFreshLookupTimeout

Added in [API level 34](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  
Also in [S Extensions 7](https://developer.android.com/sdkExtensions)

```
public DnsOptions.StaleDnsOptions.Builder setFreshLookupTimeout (Duration freshLookupTimeout)
```

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.

<br />

| Parameters ||
|---|---|
| `freshLookupTimeout` | `Duration`: This value cannot be `null`. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/net/http/DnsOptions.StaleDnsOptions.Builder` | the builder for chaining. This value cannot be `null`. <br /> |

### setMaxExpiredDelay

Added in [API level 34](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  
Also in [S Extensions 7](https://developer.android.com/sdkExtensions)

```
public DnsOptions.StaleDnsOptions.Builder setMaxExpiredDelay (Duration maxExpiredDelay)
```

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

<br />

| Parameters ||
|---|---|
| `maxExpiredDelay` | `Duration`: This value cannot be `null`. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/net/http/DnsOptions.StaleDnsOptions.Builder` | the builder for chaining. This value cannot be `null`. <br /> |

### setUseStaleOnNameNotResolved

Added in [API level 34](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  
Also in [S Extensions 7](https://developer.android.com/sdkExtensions)

```
public DnsOptions.StaleDnsOptions.Builder setUseStaleOnNameNotResolved (int state)
```

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

Depending on the use case, if the DNS resolver 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 dealing with a DNS failure.

<br />

| Parameters ||
|---|---|
| `state` | `int`: one of the DNS_OPTION_\* values. Value is one of the following: - `https://developer.android.com/reference/android/net/http/DnsOptions#DNS_OPTION_UNSPECIFIED` - `https://developer.android.com/reference/android/net/http/DnsOptions#DNS_OPTION_ENABLED` - `https://developer.android.com/reference/android/net/http/DnsOptions#DNS_OPTION_DISABLED` |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/net/http/DnsOptions.StaleDnsOptions.Builder` | the builder for chaining. This value cannot be `null`. <br /> |