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

# SQLiteClosable

*** ** * ** ***

` public abstract class SQLiteClosable `   
` extends https://developer.android.com/reference/java/lang/Object ` ` implements https://developer.android.com/reference/java/io/Closeable `

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

Known direct subclasses [CursorWindow](https://developer.android.com/reference/android/database/CursorWindow), [SQLiteDatabase](https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase), [SQLiteProgram](https://developer.android.com/reference/android/database/sqlite/SQLiteProgram) [CursorWindow](https://developer.android.com/reference/android/database/CursorWindow) A buffer containing multiple cursor rows. [SQLiteDatabase](https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase) Exposes methods to manage a SQLite database. [SQLiteProgram](https://developer.android.com/reference/android/database/sqlite/SQLiteProgram) A base class for compiled SQLite programs. Known indirect subclasses [SQLiteQuery](https://developer.android.com/reference/android/database/sqlite/SQLiteQuery), [SQLiteStatement](https://developer.android.com/reference/android/database/sqlite/SQLiteStatement) [SQLiteQuery](https://developer.android.com/reference/android/database/sqlite/SQLiteQuery) Represents a query that reads the resulting rows into a `https://developer.android.com/reference/android/database/sqlite/SQLiteQuery`. [SQLiteStatement](https://developer.android.com/reference/android/database/sqlite/SQLiteStatement) Represents a statement that can be executed against a database.   

*** ** * ** ***

An object created from a SQLiteDatabase that can be closed. This class implements a primitive reference counting scheme for database objects.

## Summary

| ### Public constructors ||
|---|---|
| ` https://developer.android.com/reference/android/database/sqlite/SQLiteClosable#SQLiteClosable()() ` |

| ### Public methods ||
|---|---|
| ` void` | ` https://developer.android.com/reference/android/database/sqlite/SQLiteClosable#acquireReference()() ` Acquires a reference to the object. |
| ` void` | ` https://developer.android.com/reference/android/database/sqlite/SQLiteClosable#close()() ` Releases a reference to the object, closing the object if the last reference was released. |
| ` void` | ` https://developer.android.com/reference/android/database/sqlite/SQLiteClosable#releaseReference()() ` Releases a reference to the object, closing the object if the last reference was released. |
| ` void` | ` https://developer.android.com/reference/android/database/sqlite/SQLiteClosable#releaseReferenceFromContainer()() ` *This method was deprecated in API level 16. Do not use.* |

| ### Protected methods ||
|---|---|
| ` abstract void` | ` https://developer.android.com/reference/android/database/sqlite/SQLiteClosable#onAllReferencesReleased()() ` Called when the last reference to the object was released by a call to `https://developer.android.com/reference/android/database/sqlite/SQLiteClosable#releaseReference()` or `https://developer.android.com/reference/android/database/sqlite/SQLiteClosable#close()`. |
| ` void` | ` https://developer.android.com/reference/android/database/sqlite/SQLiteClosable#onAllReferencesReleasedFromContainer()() ` *This method was deprecated in API level 16. Do not use.* |

### 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*.
From interface ` https://developer.android.com/reference/java/io/Closeable ` ` abstract void` ` https://developer.android.com/reference/java/io/Closeable#close()() `

Closes this stream and releases any system resources associated with it.
From interface ` https://developer.android.com/reference/java/lang/AutoCloseable ` ` abstract void` ` https://developer.android.com/reference/java/lang/AutoCloseable#close()() `

Closes this resource, relinquishing any underlying resources.

## Public constructors

### SQLiteClosable

```
public SQLiteClosable ()
```

<br />

<br />

## Public methods

### acquireReference

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

```
public void acquireReference ()
```

Acquires a reference to the object.

<br />

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalStateException` | if the last reference to the object has already been released. |

### close

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

```
public void close ()
```

Releases a reference to the object, closing the object if the last reference was released. Calling this method is equivalent to calling `https://developer.android.com/reference/android/database/sqlite/SQLiteClosable#releaseReference()`.

<br />

**See also:**

- `https://developer.android.com/reference/android/database/sqlite/SQLiteClosable#releaseReference()`
- `https://developer.android.com/reference/android/database/sqlite/SQLiteClosable#onAllReferencesReleased()`

### releaseReference

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

```
public void releaseReference ()
```

Releases a reference to the object, closing the object if the last reference was released.

<br />

**See also:**

- `https://developer.android.com/reference/android/database/sqlite/SQLiteClosable#onAllReferencesReleased()`

### releaseReferenceFromContainer

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

```
public void releaseReferenceFromContainer ()
```

<br />

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

Do not use.

Releases a reference to the object that was owned by the container of the object, closing the object if the last reference was released.

<br />

**See also:**

- `https://developer.android.com/reference/android/database/sqlite/SQLiteClosable#onAllReferencesReleasedFromContainer()`

## Protected methods

### onAllReferencesReleased

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

```
protected abstract void onAllReferencesReleased ()
```

Called when the last reference to the object was released by a call to `https://developer.android.com/reference/android/database/sqlite/SQLiteClosable#releaseReference()` or `https://developer.android.com/reference/android/database/sqlite/SQLiteClosable#close()`.

<br />

### onAllReferencesReleasedFromContainer

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

```
protected void onAllReferencesReleasedFromContainer ()
```

<br />

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

Do not use.

Called when the last reference to the object was released by a call to `https://developer.android.com/reference/android/database/sqlite/SQLiteClosable#releaseReferenceFromContainer()`.

<br />