我的问题
RxJava实现
override fun getData(context: Context, id: String) {
getDataObservable(context, id)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(object : Observer<String>
{
override fun onSubscribe(d: Disposable)
{
}
override fun onNext(value: String)
{
}
override fun onError(e: Throwable)
{
// RXJava Error Handling here
}
override fun onComplete()
{
}
})
}
fun getDataObservable(context: Context, id: String): Observable<String>
{
return Observable.defer(object : Callable<ObservableSource<out String>>
{
@Throws(Exception::class)
override fun call(): Observable<String>
{
return Observable.just(realmModel.getDataRealm(context,id))
}
})
}
Realm 实现
override fun getDataRealm(context: Context, id: String): String {
var realm: Realm? = null
var storeData:String? = null;
try {
Realm.init(context)
val config = RealmConfiguration.Builder()
.name("database.realm")
.build()
realm = Realm.getInstance(config)
realm!!.executeTransaction {
val getData = realm.where(database::class.java).equalTo("dataID",id).findAll()
storeData = getData.dataName
}
realm.close()
return storeData
}catch(e:Exception) {
realm?.close() // Realm Try-Catch Error Handling
}finally {
realm?.close()
}
}
最佳答案
我继续继续上述实现,并删除了Realm实现的try-catch
,我故意触发了一个错误,好像RXJava可以在onError
上捕获Realm发生的错误
我个人会得出以下结论:
关于android - Android RxJava和Realm-RxJava错误处理是否可以捕获Realm发生的错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51372239/