Skip to content

Instantly share code, notes, and snippets.

private <E extends RealmObject> Observable<List<E>> getCopiedObjects(Func1<Realm, RealmResults<E>> resultsHandler) {
final HandlerThread handlerThread = new HandlerThread("RealmReadThread", Process.THREAD_PRIORITY_BACKGROUND);
handlerThread.start();
final Scheduler scheduler = AndroidSchedulers.from(handlerThread.getLooper());
final AtomicReference<Realm> realmReference = new AtomicReference<>(null);
return Observable.defer(() -> {
final Realm realm = Realm.getDefaultInstance();
realmReference.set(realm);
return resultsHandler.call(realm).asObservable();
})