レルムバージョンを発射することはありません。しかし、私のオブジェクトが更新されると、RealmChangeListener
のonChange()
は決して起きません。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