首页 > 解决方案 > Java - 线程不处理带有领域数据库的改造

问题描述

当我尝试使用改造从 API 获取数据并将其保存在领域数据库中时,我的问题发生了。注意:此步骤运行良好,数据保存在“objectrealm”中。但是当我尝试处理线程以保持 API syn 在后台工作时没有任何反应,我尝试更改数据但 realm.onChange 不更新日志。

这是我的代码:

演示者层:

 compositeDisposable.add(INSTANCE_API_SERVICE.loadItems("Amman")
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())




                .subscribe(new Consumer<ResultModel>() {
                    @Override
                    public void accept(final ResultModel resultModel) throws Exception {

                        ARRAYS = resultModel.getCountryModels();


                        Realm.init(context);


                        Realm realm = Realm.getDefaultInstance();
                        try {
                            // Do some network calls/etc and get some data and stuff it into a 'json' var

                            realm.beginTransaction();
                            realm.commitTransaction();

                            // At this point, the data in the UI thread is already up to date.
                            // ...
                        } finally {
                            realm.close();

                        }
                    }

这是我在 MainActivity 的代码:

 Realm.init(getApplicationContext());
    // ... boilerplate omitted for brevity
    realm = Realm.getDefaultInstance();
    // get all the customers
    customers = realm.where(CountryModel.class).findAllAsync();
    //realm.beginTransaction();



    customers.addChangeListener(new OrderedRealmCollectionChangeListener<RealmResults<CountryModel>>() {
        @Override
        public void onChange(RealmResults<CountryModel> countryModels, OrderedCollectionChangeSet changeSet) {

            Log.e("Maher",countryModels.get(5).getCity());
        }
    });

注意:当我返回时,领域会打印更改数据,但不会在后台或实时更改中打印。

标签: javaandroidrealmretrofitrx-java

解决方案


推荐阅读