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.Builder#pubctors) \| [Methods](https://developer.android.com/reference/android/net/http/DnsOptions.Builder#pubmethods) \| [Inherited Methods](https://developer.android.com/reference/android/net/http/DnsOptions.Builder#inhmethods)

# DnsOptions.Builder

*** ** * ** ***

` public static final class DnsOptions.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.Builder |

<br />

*** ** * ** ***

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

## Summary

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

| ### Public methods ||
|---|---|
| ` https://developer.android.com/reference/android/net/http/DnsOptions` | ` https://developer.android.com/reference/android/net/http/DnsOptions.Builder#build()() ` Creates and returns the final `https://developer.android.com/reference/android/net/http/DnsOptions` instance, based on the values in this builder. |
| ` https://developer.android.com/reference/android/net/http/DnsOptions.Builder` | ` https://developer.android.com/reference/android/net/http/DnsOptions.Builder#setPersistHostCache(int)(int state) ` Sets whether the DNS cache should be persisted to disk. |
| ` https://developer.android.com/reference/android/net/http/DnsOptions.Builder` | ` https://developer.android.com/reference/android/net/http/DnsOptions.Builder#setPersistHostCachePeriod(java.time.Duration)(https://developer.android.com/reference/java/time/Duration persistHostCachePeriod) ` Sets the minimum period between subsequent writes to disk for DNS cache persistence. |
| ` https://developer.android.com/reference/android/net/http/DnsOptions.Builder` | ` https://developer.android.com/reference/android/net/http/DnsOptions.Builder#setPreestablishConnectionsToStaleDnsResults(int)(int state) ` Sets whether Cronet should use stale cached DNS records to pre-establish connections. |
| ` https://developer.android.com/reference/android/net/http/DnsOptions.Builder` | ` https://developer.android.com/reference/android/net/http/DnsOptions.Builder#setStaleDns(int)(int state) ` Sets whether to use stale DNS results at all. |
| ` https://developer.android.com/reference/android/net/http/DnsOptions.Builder` | ` https://developer.android.com/reference/android/net/http/DnsOptions.Builder#setStaleDnsOptions(android.net.http.DnsOptions.StaleDnsOptions)(https://developer.android.com/reference/android/net/http/DnsOptions.StaleDnsOptions staleDnsOptions) ` Sets detailed configuration for stale DNS. |
| ` https://developer.android.com/reference/android/net/http/DnsOptions.Builder` | ` https://developer.android.com/reference/android/net/http/DnsOptions.Builder#setUseHttpStackDnsResolver(int)(int state) ` Enables the use of the HTTP-stack-specific DNS resolver. |

### 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 build ()
```

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

<br />

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

### setPersistHostCache

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.Builder setPersistHostCache (int state)
```

Sets whether the DNS cache should be persisted to disk.

Only relevant if `https://developer.android.com/reference/android/net/http/HttpEngine.Builder#setStoragePath(java.lang.String)` is set.

<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.Builder` | the builder for chaining. This value cannot be `null`. <br /> |

### setPersistHostCachePeriod

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.Builder setPersistHostCachePeriod (Duration persistHostCachePeriod)
```

Sets the minimum period between subsequent writes to disk for DNS cache persistence.

Only relevant if `https://developer.android.com/reference/android/net/http/DnsOptions.Builder#setPersistHostCache(int)` is set to `https://developer.android.com/reference/android/net/http/DnsOptions#DNS_OPTION_ENABLED`.

<br />

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

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

### setPreestablishConnectionsToStaleDnsResults

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.Builder setPreestablishConnectionsToStaleDnsResults (int state)
```

Sets whether Cronet should use stale cached DNS records to pre-establish connections.

If enabled, Cronet will optimistically pre-establish connections to servers that matched the hostname at some point in the past and were cached but the cache entry expired. Such connections won't be used further until a new DNS lookup confirms the cached record was up to date.

To use cached DNS records straight away, use `https://developer.android.com/reference/android/net/http/DnsOptions.Builder#setStaleDns(int)` and `https://developer.android.com/reference/android/net/http/DnsOptions.StaleDnsOptions` configuration options.

This option may not be available for all networking protocols.

<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.Builder` | the builder for chaining. This value cannot be `null`. <br /> |

### setStaleDns

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.Builder setStaleDns (int state)
```

Sets whether to use stale DNS results at all.

<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.Builder` | the builder for chaining. This value cannot be `null`. <br /> |

### setStaleDnsOptions

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.Builder setStaleDnsOptions (DnsOptions.StaleDnsOptions staleDnsOptions)
```

Sets detailed configuration for stale DNS. Only relevant if `https://developer.android.com/reference/android/net/http/DnsOptions.Builder#setStaleDns(int)` is set.

<br />

| Parameters ||
|---|---|
| `staleDnsOptions` | `DnsOptions.StaleDnsOptions`: This value cannot be `null`. <br /> |

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

### setUseHttpStackDnsResolver

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.Builder setUseHttpStackDnsResolver (int state)
```

Enables the use of the HTTP-stack-specific DNS resolver.

Setting this to `https://developer.android.com/reference/android/net/http/DnsOptions#DNS_OPTION_ENABLED` is necessary for other functionality of `https://developer.android.com/reference/android/net/http/DnsOptions` to work, unless specified otherwise. See the `https://developer.android.com/reference/android/net/http/DnsOptions` documentation for more details.

<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.Builder` | the builder for chaining. This value cannot be `null`. <br /> |