Проверьте, есть ли какие-либо изменения в объекте realm
Если realmObject из результата имеет измененное значение, есть ли способ его обнаружить?
Account account = mRealmInstance.where(Account.class).equalTo("isLoggedIn", true).findFirst();
account.setName("New Name");
if(account.hasChanged()){ //Is there a realmMethod for this?
}
1 ответ:
Я бы предположил, что это то, что вы ищете?
Хотя я думаю, что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(); }
RealmChangeListener
активируется всякий раз, когда происходит изменение таблицыAccount
, а не только при изменении этого конкретного объекта.(EDIT: начиная с Realm 3.1 + прослушиватели объектов realm также являются мелкозернистыми, поэтому они изменяются только при изменении выбранной учетной записи)