使用RxJava和Scheduler来更新Realm

时间:2016-03-16 15:56:49

标签: realm rx-java

我试图“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(...)

0 个答案:

没有答案