После v0.91.0 все устаревшие методы в Realm удаляются, включая refresh()
.Обновление Android Realm repalce с waitForChange
Я использовал refresh()
, как показано ниже, чтобы убедиться, что экземпляр реального мира имеет обновленные данные.
public static <T> T query(RealmActionWithResult<T> runnable, T defaultValue) {
Realm realm = Realm.getInstance(getConfiguration());
try {
realm.refresh();
return runnable.run(realm);
} catch (Exception e) {
return defaultValue;
} finally {
realm.close();
}
}
Если я заменить refresh()
с waitForChange()
, он блокируется до следующего изменения не происходит (конечно, в не-нити петлителя).
Как я могу заставить его не блокировать текущий поток, а просто передавать его, когда текущее состояние является современным или блокируется, если есть что-то, что должно подождать?
Или если я использую Realm, как указано выше, (в любое время закрываю его) в потоке без петлирования, например, Schedulers.io
в Rx, does Realm.getInstance()
Возвращает всегда новейший моментальный снимок, потому что ссылка на кешированный экземпляр на нуль?
Благодарим за быстрый ответ! Если он кэшируется внутри области (используется в той же теме), всегда ли он самый новый? –