Added in [API level 27](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) Summary: [Ctors](https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.OpenParams.Builder#pubctors) \| [Methods](https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.OpenParams.Builder#pubmethods) \| [Inherited Methods](https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.OpenParams.Builder#inhmethods)

# SQLiteDatabase.OpenParams.Builder

*** ** * ** ***


`
public
static
final

class
SQLiteDatabase.OpenParams.Builder
`


`

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


`

`


`

|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) ||
| ↳ | android.database.sqlite.SQLiteDatabase.OpenParams.Builder |

<br />

*** ** * ** ***

Builder for `https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.OpenParams`.

## Summary

| ### Public constructors ||
|---|---|
| ` https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.OpenParams.Builder#Builder()() ` |
| ` https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.OpenParams.Builder#Builder(android.database.sqlite.SQLiteDatabase.OpenParams)(https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.OpenParams params) ` |

| ### Public methods ||
|---|---|
| ` https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.OpenParams.Builder` | ` https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.OpenParams.Builder#addOpenFlags(int)(int openFlags) ` Adds flags to control database access mode |
| ` https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.OpenParams` | ` https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.OpenParams.Builder#build()() ` Creates an instance of `https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.OpenParams` with the options that were previously set on this builder |
| ` https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.OpenParams.Builder` | ` https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.OpenParams.Builder#removeOpenFlags(int)(int openFlags) ` Removes database access mode flags |
| ` https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.OpenParams.Builder` | ` https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.OpenParams.Builder#setCursorFactory(android.database.sqlite.SQLiteDatabase.CursorFactory)(https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.CursorFactory cursorFactory) ` Set an optional factory class that is called to instantiate a cursor when query is called. |
| ` https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.OpenParams.Builder` | ` https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.OpenParams.Builder#setErrorHandler(android.database.DatabaseErrorHandler)(https://developer.android.com/reference/android/database/DatabaseErrorHandler errorHandler) ` Sets `https://developer.android.com/reference/android/database/DatabaseErrorHandler` object to handle db corruption errors |
| ` https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.OpenParams.Builder` | ` https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.OpenParams.Builder#setIdleConnectionTimeout(long)(long idleConnectionTimeoutMs) ` *This method was deprecated in API level 29. DO NOT USE this method. See the javadoc for the details.* |
| ` https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.OpenParams.Builder` | ` https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.OpenParams.Builder#setJournalMode(java.lang.String)(https://developer.android.com/reference/java/lang/String journalMode) ` Sets [journal mode](https://sqlite.org/pragma.html#pragma_journal_mode) to use. |
| ` https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.OpenParams.Builder` | ` https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.OpenParams.Builder#setLookasideConfig(int,%20int)(int slotSize, int slotCount) ` Configures [lookaside memory allocator](https://sqlite.org/malloc.html#lookaside) SQLite default settings will be used, if this method isn't called. |
| ` https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.OpenParams.Builder` | ` https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.OpenParams.Builder#setOpenFlags(int)(int openFlags) ` Sets flags to control database access mode |
| ` https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.OpenParams.Builder` | ` https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.OpenParams.Builder#setSynchronousMode(java.lang.String)(https://developer.android.com/reference/java/lang/String syncMode) ` Sets [synchronous mode](https://sqlite.org/pragma.html#pragma_synchronous) Note: If sync mode is not set, the platform will use a manufactured-specified default which can vary across devices. |

| ### 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 27](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public Builder ()
```

<br />

<br />

### Builder

Added in [API level 27](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public Builder (SQLiteDatabase.OpenParams params)
```

<br />

<br />

| Parameters ||
|---|---|
| `params` | `SQLiteDatabase.OpenParams` <br /> |

## Public methods

### addOpenFlags

Added in [API level 27](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public SQLiteDatabase.OpenParams.Builder addOpenFlags (int openFlags)
```

Adds flags to control database access mode

<br />

| Parameters ||
|---|---|
| `openFlags` | `int`: The new flags to add. Value is either `0` or a combination of the following: - `https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase#OPEN_READWRITE` - `https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase#OPEN_READONLY` - `https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase#CREATE_IF_NECESSARY` - `https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase#NO_LOCALIZED_COLLATORS` - `https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase#ENABLE_WRITE_AHEAD_LOGGING` |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.OpenParams.Builder` | same builder instance for chaining multiple calls into a single statement. This value cannot be `null`. <br /> |

### build

Added in [API level 27](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public SQLiteDatabase.OpenParams build ()
```

Creates an instance of `https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.OpenParams` with the options that were previously set
on this builder

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.OpenParams` | This value cannot be `null`. <br /> |

### removeOpenFlags

Added in [API level 27](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public SQLiteDatabase.OpenParams.Builder removeOpenFlags (int openFlags)
```

Removes database access mode flags

<br />

| Parameters ||
|---|---|
| `openFlags` | `int`: Flags to remove. Value is either `0` or a combination of the following: - `https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase#OPEN_READWRITE` - `https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase#OPEN_READONLY` - `https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase#CREATE_IF_NECESSARY` - `https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase#NO_LOCALIZED_COLLATORS` - `https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase#ENABLE_WRITE_AHEAD_LOGGING` |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.OpenParams.Builder` | same builder instance for chaining multiple calls into a single statement. This value cannot be `null`. <br /> |

### setCursorFactory

Added in [API level 27](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public SQLiteDatabase.OpenParams.Builder setCursorFactory (SQLiteDatabase.CursorFactory cursorFactory)
```

Set an optional factory class that is called to instantiate a cursor when query
is called.

<br />

| Parameters ||
|---|---|
| `cursorFactory` | `SQLiteDatabase.CursorFactory`: instance. This value may be `null`. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.OpenParams.Builder` | same builder instance for chaining multiple calls into a single statement. This value cannot be `null`. <br /> |

### setErrorHandler

Added in [API level 27](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public SQLiteDatabase.OpenParams.Builder setErrorHandler (DatabaseErrorHandler errorHandler)
```

Sets `https://developer.android.com/reference/android/database/DatabaseErrorHandler` object to handle db corruption errors

<br />

| Parameters ||
|---|---|
| `errorHandler` | `DatabaseErrorHandler`: This value may be `null`. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.OpenParams.Builder` | This value cannot be `null`. <br /> |

### setIdleConnectionTimeout

Added in [API level 27](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)   
Deprecated in [API level
29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public SQLiteDatabase.OpenParams.Builder setIdleConnectionTimeout (long idleConnectionTimeoutMs)
```


**This method was deprecated
in API level 29.**   

DO NOT USE this method. See the javadoc for the details.

Sets the maximum number of milliseconds that SQLite connection is allowed to be idle
before it is closed and removed from the pool.

**DO NOT USE** this method.
This feature has negative side effects that are very hard to foresee.

A connection timeout allows the system to internally close a connection to
a SQLite database after a given timeout, which is good for reducing app's memory
consumption.
**However** the side effect is it **will reset all of SQLite's per-connection
states** , which are typically modified with a `PRAGMA` statement, and
these states **will not be restored** when a connection is re-established
internally, and the system does not provide a callback for an app to reconfigure a
connection.
This feature may only be used if an app relies on none of such per-connection states.

<br />

| Parameters ||
|---|---|
| `idleConnectionTimeoutMs` | `long`: timeout in milliseconds. Use `https://developer.android.com/reference/java/lang/Long#MAX_VALUE` to allow unlimited idle connections. Value is 0 or greater <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.OpenParams.Builder` | This value cannot be `null`. <br /> |

**See also:**

- `https://developer.android.com/reference/android/database/sqlite/SQLiteOpenHelper#setIdleConnectionTimeout(long)`

### setJournalMode

Added in [API level 28](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public SQLiteDatabase.OpenParams.Builder setJournalMode (String journalMode)
```

Sets [journal mode](https://sqlite.org/pragma.html#pragma_journal_mode)
to use.

Note: If journal mode is not set, the platform will use a manufactured-specified
default which can vary across devices.

<br />

| Parameters ||
|---|---|
| `journalMode` | `String`: Value is one of the following: - `https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase#JOURNAL_MODE_WAL` - `https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase#JOURNAL_MODE_PERSIST` - `https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase#JOURNAL_MODE_TRUNCATE` - `https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase#JOURNAL_MODE_MEMORY` - `https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase#JOURNAL_MODE_DELETE` - `https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase#JOURNAL_MODE_OFF` . This value cannot be `null`. |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.OpenParams.Builder` | This value cannot be `null`. <br /> |

### setLookasideConfig

Added in [API level 27](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public SQLiteDatabase.OpenParams.Builder setLookasideConfig (int slotSize, 
                int slotCount)
```

Configures
[lookaside memory allocator](https://sqlite.org/malloc.html#lookaside)

SQLite default settings will be used, if this method isn't called.
Use `setLookasideConfig(0,0)` to disable lookaside

**Note:** Provided slotSize/slotCount configuration is just a
recommendation. The system may choose different values depending on a device, e.g.
lookaside allocations can be disabled on low-RAM devices

<br />

| Parameters ||
|---|---|
| `slotSize` | `int`: The size in bytes of each lookaside slot. Value is 0 or greater <br /> |
| `slotCount` | `int`: The total number of lookaside memory slots per database connection. Value is 0 or greater <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.OpenParams.Builder` | <br /> |

### setOpenFlags

Added in [API level 27](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public SQLiteDatabase.OpenParams.Builder setOpenFlags (int openFlags)
```

Sets flags to control database access mode

<br />

| Parameters ||
|---|---|
| `openFlags` | `int`: The new flags to set. Value is either `0` or a combination of the following: - `https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase#OPEN_READWRITE` - `https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase#OPEN_READONLY` - `https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase#CREATE_IF_NECESSARY` - `https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase#NO_LOCALIZED_COLLATORS` - `https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase#ENABLE_WRITE_AHEAD_LOGGING` |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.OpenParams.Builder` | same builder instance for chaining multiple calls into a single statement. This value cannot be `null`. <br /> |

**See also:**

- `https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase#OPEN_READWRITE`
- `https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase#OPEN_READONLY`
- `https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase#CREATE_IF_NECESSARY`
- `https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase#NO_LOCALIZED_COLLATORS`
- `https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase#ENABLE_WRITE_AHEAD_LOGGING`

### setSynchronousMode

Added in [API level 28](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public SQLiteDatabase.OpenParams.Builder setSynchronousMode (String syncMode)
```

Sets [synchronous mode](https://sqlite.org/pragma.html#pragma_synchronous)

Note: If sync mode is not set, the platform will use a manufactured-specified
default which can vary across devices.

<br />

| Parameters ||
|---|---|
| `syncMode` | `String`: Value is one of the following: - `https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase#SYNC_MODE_EXTRA` - `https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase#SYNC_MODE_FULL` - `https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase#SYNC_MODE_NORMAL` - `https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase#SYNC_MODE_OFF` . This value cannot be `null`. |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.OpenParams.Builder` | This value cannot be `null`. <br /> |