Как правильно закрыть область с асинхронным запросом, например
RealmResults<RealmUser> realmResults = realm
.where(RealmUser.class)
.in("id", ids)
.findAllAsync();
realmResults.addChangeListener(new RealmChangeListener<RealmResults<RealmUser>>() {
@Override
public void onChange(@NonNull RealmResults<RealmUser> realmUsers) {
if (realmUsers.size() > 0) {
List<RealmUser> users = realm.copyFromRealm(realmUsers);
callback.onSuccess(users);
realmResults.removeAllChangeListeners();
}
}
});
Если я оберну его внутри try/finally
блока, код не будет работать, если я закрою область внутри onChange
, onChange
никогда не будет вызван.
примечание: я использую синхронизированную область с платформой области.