Java - поток не обрабатывает модернизацию с базой данных Realm - PullRequest
0 голосов
/ 02 декабря 2018

Моя проблема возникла, когда я пытался получить данные из API с помощью модернизации и сохранить их в real db.ПРИМЕЧАНИЕ. Этот шаг работает хорошо, и данные сохраняются в «объектной области».Но когда я попытался обработать поток, чтобы поддерживать синхронизацию API в фоновом режиме, ничего не произошло, я попытался изменить данные, но 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());
        }
    });

ПРИМЕЧАНИЕ. Когда я идуназад область печатает данные об изменениях, но не в фоновом режиме или в режиме реального времени.

...