我在IO調度程序上訂閱。當在Schedulers.io上訂閱Observable時,從不正確的線程訪問領域
getObservableItems(itModel).subscribeOn(Schedulers.io()).
onBackpressureBuffer().
observeOn(AndroidSchedulers.mainThread()).
subscribe(new Observer<List<ItemModel>>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
}
@Override
public void onNext(List<ItemModel> resultItemModel) {
}
});
這是我觀察到的地方我做的境界交易
private Observable<List<ItemModel>> getObservableItems(ItModel itModel) {
return Observable.create(subscriber -> {
realm = Realm.getInstance(mContext);
if (itModel != null) {
ArrayList<String> ids = ProjectUtil.getId(itModel.getRequestUrl());
DatabaseHelper.saveItemCategory(realm, itModel, ids.get(0), ids.get(1));
}
RealmQuery<ItemModel> itemModelRealmQuery = realm.where(ItemModel.class);
/* Error on below line */
resultItemModel = itemModelRealmQuery.equalTo("res_id", subCategoryModel.getId()).
equalTo("menu_grp_id", subCategoryModel.getMenu_grp_id()).findAll();
subscriber.onNext(resultItemModel);
subscriber.onCompleted();
});
}
同樣的問題,與此同時,問題是.subscribeOn(Schedulers.IO()as sat Christian Melchior – FireZenk