я получаю RealmResults в упражнение, как показано ниже:метод OnChange не работает
citySceneryBeanRealmResults = realm.where(CitySceneryBean.class).equalTo("cityid", pp.getCurrentCityId()).findAll()
тогда я получаю RealmObject в другой B активность и установите realmobject в RealmChangeListener как показано ниже:
bean = realm.where(CitySceneryBean.class).equalTo("id", mVid).findFirst();
bean.addChangeListener(new RealmChangeListener<CitySceneryBean>(){
@Override
public void onChange(CitySceneryBean element) {
Log.i(SceneryDetailActivity.class, "onChange");
noManagedBean = realm.copyFromRealm(element);
refreshData();
}
});
Я подтвердил, что «bean» ReamlObject содержится в citySceneryBeanRealmResults, теперь, когда citySceneryBeanRealmResults изменен, а в A Activity I подтверждается, что связанный bean-компонент обновлен, но в B-операции метод onChange не работает, почему?
«Не работает», как в «не будет называться» или «исключает исключение»? – Fildor
не называется! – liujiankun
Где вы закрываете экземпляр Realm для Activity, где у вас есть .addChangeListener? если вы закрываете экземпляр Realm перед внесением изменений в данные, тогда вы не сможете получить обратный вызов. –