Как я могу вытащить фрагмент из backstack, не возобновляя его?

Как я могу поп-фрагмент из backstack без его возобновления? Я просто хочу удалить из заднего стека, я не хочу его отображать.

2 ответов


Это архитектурный вопрос.

1)Предположим, что у нас есть 2 контроллера (фрагменты / действия): контроллер A и контроллер B. Оба они связаны с одним экземпляром некоторой модели (вы можете использовать привязку с сервисом, Одноэлементным шаблоном или моделью init в классе Application-heir и сделать геттер к нему). Когда в контроллере B происходит что-то интересное, он уведомляет об этом модель, а затем модель вызывает controllerA.finish () / controllerA.снимать.)( Конечно, я всегда стараюсь реализовать это решение максимально красиво, но есть основная идея.

2) в других обстоятельствах я вызываю finish() сразу после startActivity (намерения);

3) Также я могу написать: startActivityForResult(intent, requestCode) и после завершения второго метода действия onActivityResult(requestCode, responseCode, intent) вызывается - если requestCode равны, я заканчиваю действие.


Если вы не используете метод FragmentTransaction
public abstract FragmentTransaction addToBackStack (String name)
чтобы добавить его в задний стек. Не будет необходимости его удалять.