Закрытие Realm и асинхронные запросы - PullRequest
0 голосов
/ 06 марта 2019

Как правильно закрыть область с асинхронным запросом, например

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 никогда не будет вызван.

примечание: я использую синхронизированную область с платформой области.

...