1
境界版本:2.1.1
RealmChangeListener的onChange()永遠不會觸發
我有一個片段,並在它的onCreate()
我註冊一個RealmChangeListener
。但是,當我的對象更新時,RealmChangeListener
的onChange()
從不會觸發。
其實,那是騙人的,一些奇怪的原因,如果我全新安裝我的應用程序將無法正常工作在所有的一切,直到我卸載工作之前幾次/重新安裝應用程序。
我知道一個事實,我的Realm
操作正在寫入Realm
,因爲如果我重新啓動我的應用程序,UI肯定會顯示這些新的更改。不知道爲什麼聽衆可能會取消註冊?
感覺有點困惑在這裏,我希望我沒有做錯事:
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();
}
真棒!就是因爲我沒有像你說的那樣強烈地引用我的用戶對象。現在很好用:)謝謝。 – Micro