使用RxJava和Scheduler来更新Realm

我试图“rxify”我的数据库层是基于Realm ..

我有这个方法:

public fun insertOrUpdate(user: user): User { return Observable.create { try { realm.beginTransaction() val result = realm.copyToRealmOrUpdate(user) realm.commitTransaction() it.onNext(result) it.onCompleted() } catch(e: Exception) { it.onError(IllegalDataAccess()) } } } 

不过,由于我使用了不同的调度器,因此在不同的线程上使用领域对象的错误。 有什么要克服这个? (我能够做到这一点在对象检索,但不是在对象插入)

(我正在使用kotlin btw。)

使用示例:

 userRepo.insertOrUpdateUser(user) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(...)