Гость
Форумы / Android [игнор отключен] [закрыт для гостей] / Как избежать задвоения запуска Fragment-ов? / 8 сообщений из 8, страница 1 из 1
28.10.2014, 10:17
    #38788959
vlad333
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как избежать задвоения запуска Fragment-ов?
Добрый день.
Есть стартовый фрагмент.
И есть остальные фрагменты которые замещают этот стартовый фрагмент,
добавляясь в стек возврата addToBackStack (). И в конце своей жизни спокойно возвращаясь
к стартовому фрагменту.

Но проблема возникает при стечении обстоятельств, когда запрос на запуск других
фрагментов приходит почти одновременно. И кто-то из них запустится.
Но сломается стек возврата.
А причина этого в том, что транзакции менеджера фрагментов коммитятся не сразу и позднее чем несколько вызовов на показ фрагментов.
developer.android.comSchedules a commit of this transaction. The commit does not happen immediately; it will be scheduled as work on the main thread to be done the next time that thread is ready. Как сказал бы П. П. Шариков:"В очередь, с..... дети!".

Соответственно, не получается отследить из findFragmentByTag то, какой сейчас фрагмент запущен.

Вопрос в том, как правильно разрулить такую ситуацию?
Нужно, чтобы, кто последний, тот и добавлялся в стек, а предыдущие незавершенные коммиты,
если они есть, убрать из очереди.
...
Рейтинг: 0 / 0
28.10.2014, 10:43
    #38789003
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как избежать задвоения запуска Fragment-ов?
vlad333Но проблема возникает при стечении обстоятельств, когда запрос на запуск других
фрагментов приходит почти одновременно.
Как этот эффект достигается?
...
Рейтинг: 0 / 0
28.10.2014, 11:19
    #38789066
vlad333
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как избежать задвоения запуска Fragment-ов?
wadmanvlad333Но проблема возникает при стечении обстоятельств, когда запрос на запуск других
фрагментов приходит почти одновременно.
Как этот эффект достигается?
Например событие из интерфейса слушателя событий по которому надо открыть определенный фрагмент
и пользователь одновременно с этим перешел на фрагмент(не обязательно на тот же самый).
...
Рейтинг: 0 / 0
28.10.2014, 11:55
    #38789114
Джибс
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как избежать задвоения запуска Fragment-ов?
vlad333wadmanпропущено...

Как этот эффект достигается?
Например событие из интерфейса слушателя событий по которому надо открыть определенный фрагмент
и пользователь одновременно с этим перешел на фрагмент(не обязательно на тот же самый).

ка кпример смотреть в фрагмент манагере, наличие такого фрагмента по тегу.
...
Рейтинг: 0 / 0
28.10.2014, 11:58
    #38789124
vlad333
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как избежать задвоения запуска Fragment-ов?
Джибска кпример смотреть в фрагмент манагере, наличие такого фрагмента по тегу.
выше я уже писал "Соответственно, не получается отследить из findFragmentByTag то, какой сейчас фрагмент запущен."
Предыдущая транзакция где-то в очереди застряла и фрагмент еще не создался.
...
Рейтинг: 0 / 0
28.10.2014, 12:20
    #38789152
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как избежать задвоения запуска Fragment-ов?
vlad333wadmanпропущено...

Как этот эффект достигается?
Например событие из интерфейса слушателя событий по которому надо открыть определенный фрагмент
и пользователь одновременно с этим перешел на фрагмент(не обязательно на тот же самый).
То есть интерфейсу виднее, что делает пользователь? А если он в это время вводит информацию?

Как-то неправильно менять фрагмент по событию без уведомления...
...
Рейтинг: 0 / 0
28.10.2014, 12:55
    #38789193
vlad333
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как избежать задвоения запуска Fragment-ов?
Пользователь там точно ничего в это время не вводит,
он наоборот ждет чего-то. И вот это чего-то определяется извне,
и в зависимости от этого показывается нужный фрагмент.
Если б пользователь что-то вводил и его труды могли бы потеряться,
конечно интерфейс реагировал бы по-другому.
...
Рейтинг: 0 / 0
05.11.2014, 12:21
    #38796032
Юрий321
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как избежать задвоения запуска Fragment-ов?
vlad333,

getSupportFragmentManager().executePendingTransactions()
...
Рейтинг: 0 / 0
Форумы / Android [игнор отключен] [закрыт для гостей] / Как избежать задвоения запуска Fragment-ов? / 8 сообщений из 8, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]