我想了解如何與Realm
和RxJava2
一起工作(用於異步交易),並做了與交易一些樣本項目:境界與RxJava2可流動的不正確的線程
private void writeAllUsers() {
Realm.getDefaultInstance().executeTransactionAsync(realm -> realm.copyToRealmOrUpdate(users));
}
private void getAllUsers() {
getUsers().observeOn(AndroidSchedulers.mainThread())
.subscribeOn(Schedulers.io())
.subscribe(this::successGetUser, this::handleUserError);
}
private Flowable<RealmResults<User>> getUsers() {
return Realm.getDefaultInstance()
.where(User.class)
.findAllAsync()
.asFlowable();
}
但是當我打電話getAllUsers
,我得到異常:
java.lang.IllegalStateException:從不正確的線程訪問域。 領域對象只能在創建它們的線程上訪問。
我在這種情況下做錯了什麼?
每個'getInstance()'調用都應該有一個匹配的'close()'調用,但只有當Realm或其任何結果不再被訪問時。 – EpicPandaForce