Tag: realm

使用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(…)

境界把交易变成可观察的

有时我想在使用Retrofit的服务调用之后执行写入操作。 由于我的默认服务器调用在io线程上执行,我只想使用Realm写入操作的相同线程。 我正在使用它: serviceInteractor.uploadMeasure(measure) .filter { uploaded: Boolean -> uploaded } // filter only the ones successfully uploaded .flatMap { realmInteractor.markMeasureSent(measure.timeStamp) } .subscribe( { success -> /* do nothing */ }, { inDebug { it.printStackTrace() } } ) 我的境界可观察如下: fun markMeasureSent(measureId: Long?): Observable<Unit> { if (measureId == null) Observable.just(Unit) return Observable.fromCallable { Realm.getDefaultInstance().use { it.executeTransaction […]

Realm&Kotlin访问字段的变量

我有以下情况: 我通过Retrofit2&GSON获取一些数据,我不想完全保存在领域数据库中。 但是我需要稍后访问模型。 那么这里是模型: open class Notification() : RealmObject() { @PrimaryKey var pushNotificationId: Long = -1 var date: Date = Date() var apsRaw: String = "" @Ignore var aps: Aps? = null get() = field ?: Gson.getInstance().fromJson(apsRaw, Aps::class.java) private set 同 open class Aps(var message: String = "", var category: String = "") 我想实现的是,只保存领域的apsRaw字符串( 以避免有另一个表“Aps” […]