2016-08-01 7 views
0

動作しない私は、以下のような活動でRealmResultsを取得:のonChangeメソッドが

citySceneryBeanRealmResults = realm.where(CitySceneryBean.class).equalTo("cityid", pp.getCurrentCityId()).findAll() 

その後、私は別のB活動にRealmObjectを取得し、以下のような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(); 
     } 
    }); 

CitySceneryBeanRealmResultsにReamlObject "bean"が含まれていることを確認しました。これはcitySceneryBeanRealmResultsが変更されたときにアクティビティで関連するBeanが更新されたことを確認しましたが、BアクティビティではonChangeメソッドが機能しません。

+0

「呼び出されません」、または「スロー例外」のように「機能しません」。 – Fildor

+0

呼び出されていません! – liujiankun

+0

.addChangeListenerを持つアクティビティのRealmインスタンスをどこで終了しますか?データの変更を行う前にRealmインスタンスを閉じると、コールバックが得られない可能性があります。 –

答えて

0

RealmChangeListenerがフィールド変数であることを確認する必要があります。

関連する問題