** Deprecated! From realm-java 0.87.0 and on, it has builtin observable support **
A lightweight wrapper around realm-java which introduces reactive stream semantics to SQL operations.(Inspired by square/sqlbrite)
Add the JitPack repository to your build file:
repositories { // ... maven { url "https://jitpack.io" } }Add the dependency:
dependencies { compile 'com.github.mulab:rx-realm:1.2.0' compile 'io.realm:realm-android:0.86.1' }Initialize (in Appliction#onCreate method for Android App):
RealmConfiguration config = new RealmConfiguration.Builder(context) // set configuration for realm, see realm-java's document .build(); RealmDatabase.init(config);Assume that Foo is a realm data model, i.e. Foo extends RealmObject.(see more in Realm-java's documentation)
RealmDatabase.createQuery(new Query()<Foo>{ @Override public RealmResults<Foo> call(Realm realm) { return realm.where(Foo.class).findAll(); } }, Foo.class).subscribe(this);The last parameter of createQuery means watching on Foo if it is notified.
RealmDatabase.exec(new Exec() { @Override public void run(Realm realm) { realm.where(Foo.class).findAll().clear(); } }, Foo.class).subscribe(this);The last parameter of exec means it will notify Foo.