# InvalidationTracker

added in[version 1.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  
belongs to Maven artifact android.arch.persistence.room:runtime:1.1.0-beta2  
Summary:[Nested Classes](https://developer.android.com/reference/android/arch/persistence/room/InvalidationTracker#nestedclasses)\|[Methods](https://developer.android.com/reference/android/arch/persistence/room/InvalidationTracker#pubmethods)\|[Inherited Methods](https://developer.android.com/reference/android/arch/persistence/room/InvalidationTracker#inhmethods)  

# InvalidationTracker

| The`android.arch`Architecture Components packages are no longer maintained. They have been superseded by the corresponding[androidx.\*](https://developer.android.com/jetpack/androidx/migrate)packages. See[androidx.room.InvalidationTracker](https://developer.android.com/reference/androidx/room/InvalidationTracker)instead.

`
public


class
InvalidationTracker
`  
`

extends Object


``


`

|---|---------------------------------------------------|
| java.lang.Object                                     ||
| ↳ | android.arch.persistence.room.InvalidationTracker |

<br />

*** ** * ** ***

InvalidationTracker keeps a list of tables modified by queries and notifies its callbacks about these tables.

## Summary

|                                                                                          ### Nested classes                                                                                           ||
|----------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ` class` | [InvalidationTracker.Observer](https://developer.android.com/reference/android/arch/persistence/room/InvalidationTracker.Observer) An observer that can listen for changes in the database. |

|                                                                                                                                                                                                                   ### Public methods                                                                                                                                                                                                                   ||
|---------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ` void` | ` `[addObserver](https://developer.android.com/reference/android/arch/persistence/room/InvalidationTracker#addObserver(android.arch.persistence.room.InvalidationTracker.Observer))`(`[InvalidationTracker.Observer](https://developer.android.com/reference/android/arch/persistence/room/InvalidationTracker.Observer)` observer) ` Adds the given observer to the observers list and it will be notified if any table it observes changes. |
| ` void` | ` `[refreshVersionsAsync](https://developer.android.com/reference/android/arch/persistence/room/InvalidationTracker#refreshVersionsAsync())`() ` Enqueues a task to refresh the list of updated tables.                                                                                                                                                                                                                                       |
| ` void` | ` `[removeObserver](https://developer.android.com/reference/android/arch/persistence/room/InvalidationTracker#removeObserver(android.arch.persistence.room.InvalidationTracker.Observer))`(`[InvalidationTracker.Observer](https://developer.android.com/reference/android/arch/persistence/room/InvalidationTracker.Observer)` observer) ` Removes the observer from the observers list.                                                     |

| ### Inherited methods |
|-----------------------|---|
| From class` java.lang.Object ` |-------------------|-------------------------------| | ` Object`         | ` clone() `                   | | ` boolean`        | ` equals(Object arg0) `       | | ` void`           | ` finalize() `                | | ` final Class<?>` | ` getClass() `                | | ` int`            | ` hashCode() `                | | ` final void`     | ` notify() `                  | | ` final void`     | ` notifyAll() `               | | ` String`         | ` toString() `                | | ` final void`     | ` wait(long arg0, int arg1) ` | | ` final void`     | ` wait(long arg0) `           | | ` final void`     | ` wait() `                    | ||

## Public methods

### addObserver

added in[version 1.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
void addObserver (InvalidationTracker.Observer observer)
```

Adds the given observer to the observers list and it will be notified if any table it observes changes.

Database changes are pulled on another thread so in some race conditions, the observer might be invoked for changes that were done before it is added.

If the observer already exists, this is a no-op call.

If one of the tables in the Observer does not exist in the database, this method throws an[IllegalArgumentException](https://developer.android.com/reference/java/lang/IllegalArgumentException).

<br />

|                                               Parameters                                                ||
|------------|---------------------------------------------------------------------------------------------|
| `observer` | `InvalidationTracker.Observer`: The observer which listens the database for changes. <br /> |

### refreshVersionsAsync

added in[version 1.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
void refreshVersionsAsync ()
```

Enqueues a task to refresh the list of updated tables.

This method is automatically called when[endTransaction()](https://developer.android.com/reference/android/arch/persistence/room/RoomDatabase#endTransaction())is called but if you have another connection to the database or directly use[SupportSQLiteDatabase](https://developer.android.com/reference/android/arch/persistence/db/SupportSQLiteDatabase), you may need to call this manually.

<br />

### removeObserver

added in[version 1.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
void removeObserver (InvalidationTracker.Observer observer)
```

Removes the observer from the observers list.

<br />

|                                 Parameters                                 ||
|------------|----------------------------------------------------------------|
| `observer` | `InvalidationTracker.Observer`: The observer to remove. <br /> |

-

  ## Annotations

  - [ColumnInfo](https://developer.android.com/reference/android/arch/persistence/room/ColumnInfo)
  - [ColumnInfo.Collate](https://developer.android.com/reference/android/arch/persistence/room/ColumnInfo.Collate)
  - [ColumnInfo.SQLiteTypeAffinity](https://developer.android.com/reference/android/arch/persistence/room/ColumnInfo.SQLiteTypeAffinity)
  - [Dao](https://developer.android.com/reference/android/arch/persistence/room/Dao)
  - [Database](https://developer.android.com/reference/android/arch/persistence/room/Database)
  - [Delete](https://developer.android.com/reference/android/arch/persistence/room/Delete)
  - [Embedded](https://developer.android.com/reference/android/arch/persistence/room/Embedded)
  - [Entity](https://developer.android.com/reference/android/arch/persistence/room/Entity)
  - [ForeignKey](https://developer.android.com/reference/android/arch/persistence/room/ForeignKey)
  - [ForeignKey.Action](https://developer.android.com/reference/android/arch/persistence/room/ForeignKey.Action)
  - [Ignore](https://developer.android.com/reference/android/arch/persistence/room/Ignore)
  - [Index](https://developer.android.com/reference/android/arch/persistence/room)
  - [Insert](https://developer.android.com/reference/android/arch/persistence/room/Insert)
  - [OnConflictStrategy](https://developer.android.com/reference/android/arch/persistence/room/OnConflictStrategy)
  - [PrimaryKey](https://developer.android.com/reference/android/arch/persistence/room/PrimaryKey)
  - [Query](https://developer.android.com/reference/android/arch/persistence/room/Query)
  - [RawQuery](https://developer.android.com/reference/android/arch/persistence/room/RawQuery)
  - [Relation](https://developer.android.com/reference/android/arch/persistence/room/Relation)
  - [SkipQueryVerification](https://developer.android.com/reference/android/arch/persistence/room/SkipQueryVerification)
  - [Transaction](https://developer.android.com/reference/android/arch/persistence/room/Transaction)
  - [TypeConverter](https://developer.android.com/reference/android/arch/persistence/room/TypeConverter)
  - [TypeConverters](https://developer.android.com/reference/android/arch/persistence/room/TypeConverters)
  - [Update](https://developer.android.com/reference/android/arch/persistence/room/Update)
-

  ## Classes

  - [DatabaseConfiguration](https://developer.android.com/reference/android/arch/persistence/room/DatabaseConfiguration)
  - [InvalidationTracker](https://developer.android.com/reference/android/arch/persistence/room/InvalidationTracker)
  - [InvalidationTracker.Observer](https://developer.android.com/reference/android/arch/persistence/room/InvalidationTracker.Observer)
  - [Room](https://developer.android.com/reference/android/arch/persistence/room/Room)
  - [RoomDatabase](https://developer.android.com/reference/android/arch/persistence/room/RoomDatabase)
  - [RoomDatabase.Builder](https://developer.android.com/reference/android/arch/persistence/room/RoomDatabase.Builder)
  - [RoomDatabase.Callback](https://developer.android.com/reference/android/arch/persistence/room/RoomDatabase.Callback)
  - [RoomDatabase.MigrationContainer](https://developer.android.com/reference/android/arch/persistence/room/RoomDatabase.MigrationContainer)
  - [RoomWarnings](https://developer.android.com/reference/android/arch/persistence/room/RoomWarnings)
  - [RxRoom](https://developer.android.com/reference/android/arch/persistence/room/RxRoom)
-

  ## Enums

  - [RoomDatabase.JournalMode](https://developer.android.com/reference/android/arch/persistence/room/RoomDatabase.JournalMode)
-

  ## Exceptions

  - [EmptyResultSetException](https://developer.android.com/reference/android/arch/persistence/room/EmptyResultSetException)