我想了解如何与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