Realm Версия: 2.1.1
RealmChangeListener OnChange() никогда не стреляет
У меня есть фрагмент и в его onCreate()
я зарегистрировать RealmChangeListener
. Однако, когда мой объект обновляется, RealmChangeListener
onChange()
никогда не срабатывает.
На самом деле это ложь, по какой-то странной причине, если я убираю установку своего приложения, она будет работать несколько раз, прежде чем вообще не работать вообще, пока я не удалю/повторно установлю приложение еще раз.
Я знаю, что мои операции Realm
записываются в Realm
, потому что если я перезапущу приложение, пользовательский интерфейс обязательно отобразит эти новые изменения. Не знаю, почему, возможно, слушатели отменили регистрацию?
Чувство немного запутался здесь, я надеюсь, что я не делаю что-то неправильно:
public class ProfileFragment extends Fragment {
private Realm mRealm;
private RealmChangeListener mRealmChangeListener;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mRealm = Realm.getDefaultInstance();
// Get user from Realm
RealmQuery<User> query = mRealm.where(User.class);
User user = query.findFirst();
updateUI(user);
mRealmChangeListener = new RealmChangeListener<User>() {
@Override
public void onChange(User user) {
updateUI(user);
}
};
user.addChangeListener(mRealmChangeListener);
}
// Todo:
// Unregister listeners + realm in OnDestroy();
}
Удивительный! Это было то, что у меня не было большой ссылки на мой объект User, как вы сказали. Отлично работает сейчас :) Спасибо. – Micro