如果結果中的realmObject值已更改,是否有方法檢測它?檢查領域對象是否有任何更改
Account account = mRealmInstance.where(Account.class).equalTo("isLoggedIn", true).findFirst();
account.setName("New Name");
if(account.hasChanged()){ //Is there a realmMethod for this?
}
如果結果中的realmObject值已更改,是否有方法檢測它?檢查領域對象是否有任何更改
Account account = mRealmInstance.where(Account.class).equalTo("isLoggedIn", true).findFirst();
account.setName("New Name");
if(account.hasChanged()){ //Is there a realmMethod for this?
}
我認爲這是你在找什麼?
RealmChangeListener<Account> listener = new RealmChangeListener() {
@Override
public void onChange(Account account) {
// changes have been made to Account table
}
}
Account mAccount;
mAccount = mRealmInstance.where(Account.class).equalTo("isLoggedIn", true).findFirst();
if(mAccount != null) {
mAccount.addChangeListener(listener);
//assuming I'm in a transaction here
mAccount.setName("New Name");
}
...
if(mAccount.isValid()) {
mAccount.removeAllChangeListeners();
}
雖然我覺得只要有一個變化的Account
表,不只是當這個特定的對象被修改的RealmChangeListener
被激活。
(編輯:自境界3.1+領域對象的聽衆也細粒度所以只有當所選帳戶進行修改它被修改)
不確定激活。看起來只有在修改Account表中選定的賬戶時才調用onChange方法。 – Tobliug
@Tobliug自Realm 3.1+以來,領域對象監聽器也是細化的,因此只有在選定的帳戶被修改時纔會被修改 – EpicPandaForce
您可以添加監聽到'RealmObject',但它會被稱爲當數據庫發生變化時,但不僅是「RealmObject」更改。稍後會有更適當的實現,請參閱https://github.com/realm/realm-java/issues/989 – beeender