Область сохраняет удаленный объект
У меня было 2 фрагмента A и B, во фрагменте B я удаляю объект, используя транзакцию, затем выполняю getActivity().getSupportFragmentManager().popBackStack();
чтобы вернуться к фрагменту A, после удаления объекта я отлаживаю и обнаружил, что объект правильно удален, но когда я возвращаюсь к фрагменту A, я нашел его, это странно!
это мой код в моем фрагменте А
realm.executeTransactionAsync(new Realm.Transaction() {
@Override
public void execute(@NonNull Realm realm) {
Infraction infraction = realm.where(Infraction.class).equalTo("id",id_new_inf).findFirst();
if(infraction != null)
infraction.deleteFromRealm();
}
});
getActivity().getSupportFragmentManager().popBackStack();
Так почему же объект не удален?
во фрагменте A у меня нет ничего особенного, это просто запрос в onCreateView
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
final View v = inflater.inflate(R.layout.list_infractions, container, false);
infractions = realm.where(Infraction.class).findAll();
}
1 ответ
Делать
realm.executeTransactionAsync((r) ->
Infraction infraction = r.where(Infraction.class).equalTo("id",id_new_inf).findFirst();
if(infraction != null)
infraction.deleteFromRealm();
}
}, () -> { // on Success
getActivity().getSupportFragmentManager()
.popBackStack();
});