RxRoom

public class RxRoom


Helper class to add RxJava2 support to Room.

Summary

Constants

static final Object

Data dispatched by the publisher created by createFlowable.

Public constructors

This method 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.

Constants

NOTHING

Added in 2.0.0
public static final Object NOTHING

Data dispatched by the publisher created by createFlowable.

Public constructors

RxRoom

Added in 2.0.0
Deprecated in 2.0.0
public RxRoom()

Public methods

createFlowable

public static Flowable<ObjectcreateFlowable(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
RoomDatabase database

The database instance

String[] tableNames

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<ObjectcreateObservable(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
RoomDatabase database

The database instance

String[] tableNames

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).