Как я могу вытащить фрагмент из 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)
чтобы добавить его в задний стек. Не будет необходимости его удалять.