Моя проблема возникла, когда я пытался получить данные из 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());
}
});
ПРИМЕЧАНИЕ. Когда я идуназад область печатает данные об изменениях, но не в фоновом режиме или в режиме реального времени.