我试图“rxify”我的基于Realm的数据库层。
我有这个方法:
public fun insertOrUpdate(user: user): User {
return Observable.create<UserAccount> {
try {
realm.beginTransaction()
val result = realm.copyToRealmOrUpdate(user)
realm.commitTransaction()
it.onNext(result)
it.onCompleted()
} catch(e: Exception) {
it.onError(IllegalDataAccess())
}
}
}
但是,我在另一个线程上使用realm对象时出错,因为我使用的是另一个Scheduler。有没有可以克服这个? (我能够在对象检索上执行此操作,但不能在对象插入上执行此操作)
(我正在使用kotlin btw。)
使用示例:
userRepo.insertOrUpdateUser(user)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(...)