Я применяю фильтры к области, используя RealmResults <>.
Я начинаю делать так -
RealmResults<data> filteredRealmResults;
List<data> tranfilteredlist;
private OrderedRealmCollectionChangeListener<RealmResults<data>> filteredTransChangeListener =
new OrderedRealmCollectionChangeListener<RealmResults<data>>() {
@Override
public void onChange(RealmResults<data> results, OrderedCollectionChangeSet changeSet) {
Log.d("realm", "filteredRealmResults.size():" + filteredRealmResults.size());
tranfilteredlist = results;
initFilterAdapter();
}
};
Теперь я хочу удалить filteredRealmResults
. Я так и сделал -
void deleteFilteredRealmResults() {
realm.executeTransaction(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
// Delete all matches
filteredRealmResults.deleteAllFromRealm();
}
});
}
После этого мои данные в области были удалены. Поэтому я просто пытаюсь удалить tranfilteredlist
, но он выдает исключение, что он не поддерживает .clear();
Я хочу очистить, если из памяти, что является держателем данных запроса. Поправьте меня, если я ошибаюсь или не понимаю или просто слишком беспокоюсь.
Я прочитал Этот класс содержит все совпадения RealmQuery для данной области. Объекты не копируются из Realm в список RealmResults, а вместо этого просто ссылаются из RealmResult. Это экономит память и увеличивает скорость.