RxRoom

public class RxRoom
extends Object

java.lang.Object
   ↳ androidx.room.RxRoom


Helper class to add RxJava2 support to Room.

Summary

Fields

public static final Object NOTHING

Data dispatched by the publisher created by createFlowable(RoomDatabase, String).

Public constructors

RxRoom()

This constructor is deprecated. This type should not be instantiated as it contains only static methods.

Public methods

static Flowable<Object> createFlowable(RoomDatabase database, String... tableNames)

Creates a Flowable that emits at least once and also re-emits whenever one of the observed tables is updated.

static Observable<Object> createObservable(RoomDatabase database, String... tableNames)

Creates a Observable that emits at least once and also re-emits whenever one of the observed tables is updated.

Inherited methods

Fields

NOTHING

public static final Object NOTHING

Data dispatched by the publisher created by createFlowable(RoomDatabase, String).

Public constructors

RxRoom

public RxRoom ()

This constructor is deprecated.
This type should not be instantiated as it contains only static methods.

Public methods

createFlowable

public static Flowable<Object> createFlowable (RoomDatabase database, 
                String... tableNames)

Creates a Flowable that emits at least once and also re-emits whenever one of the observed tables is updated.

You can easily chain a database operation to downstream of this Flowable to ensure that it re-runs when database is modified.

Since database invalidation is batched, multiple changes in the database may results in just 1 emission.

Parameters
database RoomDatabase: The database instance

tableNames String: The list of table names that should be observed

Returns
Flowable<Object> A Flowable which emits NOTHING when one of the observed tables is modified (also once when the invalidation tracker connection is established).

createObservable

public static Observable<Object> createObservable (RoomDatabase database, 
                String... tableNames)

Creates a Observable that emits at least once and also re-emits whenever one of the observed tables is updated.

You can easily chain a database operation to downstream of this Observable to ensure that it re-runs when database is modified.

Since database invalidation is batched, multiple changes in the database may results in just 1 emission.

Parameters
database RoomDatabase: The database instance

tableNames String: The list of table names that should be observed

Returns
Observable<Object> A Observable which emits NOTHING when one of the observed tables is modified (also once when the invalidation tracker connection is established).